
Tips.Net > ExcelTips Home > Formulas > Data Conversion > Pulling Apart Characters in a Long String
Summary: Excel includes some powerful ways that you can process text in a worksheet. This tip covers two ways (both with formulas and macros) that you can pull a string apart to get at its individual characters. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, and Excel 2003.)
John has a worksheet that, in column A, has a large number of very long text strings. He needs to individually pull the first 249 characters from each string, placing a single character in each cell to the right of the string.
There are a couple of ways that you can accomplish this task. It is quite easy to do through the use of a simple formula. For instance, if your first text string is in cell A1, put the following formula to its right, in cell B1:
=MID($A1,COLUMN()-1,1)
This formula uses Excel worksheet functions to pull apart the text string. The COLUMN function, in this case, returns the value 2 since the formula is in column B and that is the second column in the worksheet. This value is decremented by 1, and then used as a pointer into the string in cell A1, marking where the extracted character should come from. When you copy this formula right, for however many cells desired, you end up with individual characters from the string, in consecutive order.
Of course, if you have quite a few strings in the worksheet (as John does), then copying this formula over 249 columns and down over, say, several hundred rows can make for a very sluggish worksheet. In such situations it may be desirable to use a macro to split apart the strings instead of a formula. The following macro, SplitUp, is one approach to doing the actual tearing apart.
Sub SplitUp()
Dim c As Range
Dim r As Range
Dim sTemp As String
Dim z As Integer
Set r = Range("A1", Range("A65536").End(xlUp))
For Each c In r
sTemp = Left(c, 249)
For z = 1 To Len(sTemp)
c.Offset(0, z) = Mid(sTemp, z, 1)
Next z
Next
End Sub
The macro starts by defining a range (r) that consists of all the cells in column A that contain values. The c variable is then used to represent each cell in the range, and the first 249 characters pulled from each cell. A For ... Next loop is then used to pull each character from the string and stuff it into a cell to the right of the string.
Tip #2790 applies to Microsoft Excel versions: 97 2000 2002 2003
Tame Your Data! ExcelTips: Filters and Filtering provides all the details necessary to let you manage large sets of data with confidence and ease. Its information-packed pages demonstrate how to use the two types of filters provided by Excel: AutoFilters and advanced filters.
Check out ExcelTips: Filters and Filtering today!
Add power to your purpose with Excel. A comprehensive 500+ page e-book explains everything you need to know about macros. (more information...)
Ask an Excel Question
Make a Comment
ExcelTips FAQ
ExcelTips Premium
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Word2007 Tips
WordTips
Advertise on the
ExcelTips Site