Getting tired by using Text to Column option to convert a Text into Column after a specific character each time? If so, then you can use a formula to split a Text into columns after each time a specific character appeared in the Text in Excel. Want to know how? Check the below example.
Sample Text:
Before starting our study today, I'm going to show a sample data to make clear that what exactly the data is and what we need:
And we are going to do:
Solution:
In cell B2 write the below formula and copy right to the F2 cell:
So, how this formula works? Well, we need to took a starting point after a certain number of characters and then add a sample character ("-") specific time LEN($A2). And finally delete the added character ("-") a take the rest.
The above is a summary about how this formula worked. The details are as follows:
The First Portion:
In this portion, deleted the special characters (" # ") and added another special character ("-") LEN($A2) = 22 times. So, this formula returns the primary result like:
The Second Portion:
In this portion, MID function starts pulling characters after a certain numbers of character from:
with the below starting point formula:
Here, the trick is, how COLUMN and LEN formula jointly returns the starting number each time:
COLUMN(A2)-1*LEN($A2)+1
Returns, 1-1*22+1
Return, 0*22+1
Returns 0+1
Returns 1
While we drag the formula in C2 cell then this formula becomes:
(COLUMN(B2)-1*LEN($A2)+1
Returns 2-1*22+1
Returns 1*22+1
Returns 22+1
Returns 23
While we drag the formula in D2 cell then this formula becomes:
(COLUMN(C2)-1*LEN($A2)+1
Returns 3-1*22+1
Returns 2*22+1
Returns 44+1
Returns 45
Third Portion:
The third portion is the end number of MID function and that is, a simple:
LEN($A2)
Returns 22
After the third portion the result becomes:
Fourth Portion:
The final function applied in this formula is:
This SUBSTITUTE function delete the special character "-" to blank (""). And finally the result becomes:
Sample Text:
Before starting our study today, I'm going to show a sample data to make clear that what exactly the data is and what we need:
Image 1: A2 cell contains the Sample Data
And we are going to do:
Image 2: Convert the Text (A2) to Column (B2:F2)
Solution:
In cell B2 write the below formula and copy right to the F2 cell:
=SUBSTITUTE(MID(SUBSTITUTE($A2," # ",REPT("-",LEN($A2))),(COLUMN(A2)-1)*LEN($A2)+1,LEN($A2)),"-","")
So, how this formula works? Well, we need to took a starting point after a certain number of characters and then add a sample character ("-") specific time LEN($A2). And finally delete the added character ("-") a take the rest.
The above is a summary about how this formula worked. The details are as follows:
The First Portion:
SUBSTITUTE($A2," # ",REPT("-",LEN($A2)))
In this portion, deleted the special characters (" # ") and added another special character ("-") LEN($A2) = 22 times. So, this formula returns the primary result like:
"1D----------------------5S----------------------D4----------------------R5----------------------A5"
The Second Portion:
MID(SUBSTITUTE($A2," # ",REPT("-",LEN($A2))),(COLUMN(A2)-1)*LEN($A2)+1,LEN($A2))
In this portion, MID function starts pulling characters after a certain numbers of character from:
"1D----------------------5S----------------------D4----------------------R5----------------------A5"
with the below starting point formula:
(COLUMN(A2)-1)*LEN($A2)+1
Here, the trick is, how COLUMN and LEN formula jointly returns the starting number each time:
COLUMN(A2)-1*LEN($A2)+1
Returns, 1-1*22+1
Return, 0*22+1
Returns 0+1
Returns 1
While we drag the formula in C2 cell then this formula becomes:
(COLUMN(B2)-1*LEN($A2)+1
Returns 2-1*22+1
Returns 1*22+1
Returns 22+1
Returns 23
While we drag the formula in D2 cell then this formula becomes:
(COLUMN(C2)-1*LEN($A2)+1
Returns 3-1*22+1
Returns 2*22+1
Returns 44+1
Returns 45
Third Portion:
The third portion is the end number of MID function and that is, a simple:
LEN($A2)
Returns 22
After the third portion the result becomes:
Image 3: Result after third portion
Fourth Portion:
The final function applied in this formula is:
=SUBSTITUTE(MID(SUBSTITUTE($A2," # ",REPT("-",LEN($A2))),(COLUMN(A2)-1)*LEN($A2)+1,LEN($A2)),"-","")
This SUBSTITUTE function delete the special character "-" to blank (""). And finally the result becomes:
Image 4: Split a TEXT into Column after a specific character each time in Excel
If you want to download this exercise file, then click on the below link: