The tutorial shows how to use the brand-new TEXTSPLIT function to split strings in Excel 365 by any delimiter that you specify.
There may be various situations when you need to split cells in Excel. In earlier versions, we were already equipped with a number of instruments to accomplish the task such as Text to Columns and Fill Flash. Now, we also have a special function for this, TEXTSPLIT, that can separate a string into multiple cells across columns or/and rows based on the parameters that you specify.
Excel TEXTSPLIT function
The TEXTSPLIT function in Excel splits text strings by a given delimiter across columns or/and rows. The result is a dynamic array that spills into multiple cells automatically.
The function takes as many as 6 arguments, only the first two of which are required.
Text (required) - the text to split. Can be supplied as a string or cell reference.
Col_delimiter (required) - a character(s) that indicates where to split the text across columns. If omitted, row_delimiter must be defined.
Row_delimiter (optional) - a character(s) that indicates where to split the text across rows.
Ignore_empty (optional) - specifies whether to ignore empty values or not:
- FALSE (default) - create empty cells for consecutive delimiters without a value in-between.
- TRUE - ignore empty values, i.e. don't create empty cells for two or more consecutive delimiters.
Match_mode (optional) - determines case-sensitivity for the delimiter. Enabled by default.
- 0 (default) - case-sensitive
- 1 - case-insensitive
Pad_with (optional) - a value to use in place of missing values in two-dimensional arrays. The default is a #N/A error.
For example, to divide a text string in A2 into multiple cells using a comma and a space as the separator, the formula is:
=TEXTSPLIT(A2, ", ")
TEXTSPLIT availability
The TEXTSPLIT function is only available in Excel for Microsoft 365 (Windows and Mac) and Excel for the web.
Tips:
- In Excel versions where the TEXTSPLIT function is not available (other than Excel 365), you can use the Text to Columns wizard to split cells.
- To perform the reverse task, i.e. to join the contents of multiple cells into one using a certain delimiter, TEXTJOIN is the function to use.
Basic TEXTSPLIT formula to split a cell in Excel
For starters, let's see how to use a TEXTSPLIT formula in its simplest form to split a text string by a particular delimiter.
Split a cell horizontally across columns
To divide the contents of a given cell into multiple columns, supply a reference to the cell containing the original string for the first (text) argument and the delimiter that marks the point where the splitting should occur for the second (col_delimiter) argument.
For example, to separate the string in A2 horizontally by comma, the formula is:
=TEXTSPLIT(A2, ",")
For the delimiter, we use a comma enclosed in double quotes (",").
As a result, each item separated by a comma goes into an individual column:
Split a cell vertically across rows
To split text across multiple rows, the third argument (row_delimiter) is where you place the delimiter. The second argument (col_delimiter) is omitted in this case.
For instance, to separate the values in A2 into different rows, the formula is:
=TEXTSPLIT(A2, ,",")
Please note that, in both cases, the formula is only entered in one cell (C2). In neighboring cells, the returned values spill automatically. The resulting array (which is called a spill range) is highlighted with a blue border indicating that everything inside it is calculated by the formula in the upper left cell.
Split text by substring
In many cases, the values in the source string are separated by a sequence of characters, a comma and a space being a typical example. To handle this scenario, use a substring for the delimiter.
For instance, to separate the text in A2 into multiple columns by a comma and a space, use the string ", " for col_delimiter.
=TEXTSPLIT(A2, ", ")
This formula goes to B2, and then you copy it down through as many cells as needed.
Split string into columns and rows at once
To split a text string into rows and columns at a time, define both delimiters in your TEXTSPLIT formula.
For example, to split the text string in A2 across columns and rows, we supply:
- The equal sign ("=") for col_delimiter
- A comma and a space (", ") for row_delimiter
The complete formula takes this form:
=TEXTSPLIT(A2, "=", ", ")
The result is a 2-D array consisting of 2 columns and 3 rows:
Separate cells by multiple delimiters
To handle multiple or inconsistent delimiters in the source string, use an array constant like {"x","y","z"} for the delimiter argument.
In the screenshot below, the text in A2 is delimited by both commas (",") and semicolons (";") with and without spaces. To split the string vertically into rows by all 4 variations of the delimiter, the formula is:
=TEXTSPLIT(A2, , {",",", ",";","; "})
Or, you can include only a comma (",") and semicolon (";") in the array, and then remove extra spaces with the help of the TRIM function:
=TRIM(TEXTSPLIT(A2, , {",",";"}))

Split text ignoring empty values
If the string contains two or more consecutive delimiters without a value between them, you can choose whether to ignore such empty values or not. This behavior is controlled by the fourth ignore_empty parameter, which defaults to FALSE.
By default, the TEXTSPLIT function does not ignore empty values. The default behavior works nicely for structured data as in the below example.
In this sample table, the scores are missing in some strings. The TEXTSPLIT formula with the ignore_empty argument omitted or set to FALSE handles this case perfectly, creating an empty cell for each empty value.
=TEXTSPLIT(A2, ", ")
Or
=TEXTSPLIT(A2, ", ", FALSE)
As a result, all the values appear in the appropriate columns.
In case your strings contain homogeneous data, it may stand to reason to ignore empty values. For this, set the ignore_empty argument to TRUE or 1.
For instance, to divide t the below strings placing each skill in a separate cell without gaps, the formula is:
=TEXTSPLIT(A2, ", ", ,TRUE)
In this case, the missing values between consecutive delimiters are ignored completely:
Cell splitting case-sensitive or case-insensitive
To control the case-sensitivity of the delimiter, make use of the fifth argument, match_mode.
By default, match_mode is set to 0, making TEXTSPLIT case-sensitive.
In this example, the numbers are separated by the lowercase "x" and uppercase "X" letters.
The formula with the default case-sensitivity only accepts the lowercase "x" as the delimiter:
=TEXTSPLIT(A2, " x ")
Please pay attention that the delimiter has a space on both sides of the letter " x " in order to prevent leading and trailing spaces in the results.
To turn off case sensitivity, you supply 1 for match_mode to force the TEXTSPLIT formula to ignore the letter case:
=TEXTSPLIT(A2, " x ", , ,1)
Now, all the strings are split correctly by either delimiter:
Pad missing values in 2D array
The last argument of the TEXTSPLIT function, pad_with, comes in handy in case one or more values are missing in the source string. When such a string is split into both columns and rows, by default, Excel returns #N/A errors instead of the missing values not to mangle the structure of a two-dimensional array.
In the below string, there is no "=" (col_delimiter) after "Score". To keep the integrity of the resulting array, TEXTSPLIT outputs #N/A next to "Score".
To make the result more user-friendly, you can replace the #N/A error with any value you want. Simply, type the desired value in the pad_with argument.
In our case, that could be a hyphen ("-"):
=TEXTSPLIT(A2, "=", ", ", , ,"-")
Or an empty string (""):
=TEXTSPLIT(A2, "=", ", ", , ,"")
Now that you've learned practical uses of each argument of the TEXTSPLIT function, let's discuss a couple of advanced examples that can help you cope with non-trivial challenges in your Excel spreadsheets.
Split dates into day, month and year
To divide a date into individual units, first you need to convert date to text because the TEXTSPLIT function deals with text strings while Excel dates are numbers.
The easiest way to convert a numeric value to text is by using the TEXT function. Just be sure to supply an appropriate format code for your date.
In our case, the formula is:
=TEXT(A2, "m/d/yyyy")
The next step is to nest the above function in the 1st argument of TEXTSPLIT and enter the corresponding delimiter for the 2nd or 3rd argument, depending on whether you are splitting across columns or rows. In this example, the date units are delimited with slashes, so we use "/" for the col_delimiter argument:
=TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")
Split cells and remove certain characters
Imagine this: you've split a long string into pieces, but the resulting array still contains some unwanted characters, such as parentheses in the screenshot below:
=TEXTSPLIT(A2, " ", "; ")
To strip off the opening and closing parentheses at a time, nest two SUBSTITUTE functions one into another (each replacing one parenthesis with an empty string) and use the TEXTSPLIT formula for the text argument of the inner SUBSTITUTE:
=SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")
Tip. If the final array contains too many extra characters, you can purge them using one of the methods described in this article: How to remove unwanted characters in Excel.
Split strings skipping certain values
Supposing you want to separate the below strings into 4 columns: First name, Last name, Score, and Result. The problem is that some strings contain the title "Mr." or "Ms.", because of which the results are all wrong:
The solution is not obvious but quite simple :)
In addition to the existing delimiters, which are a space (" ") and a comma and a space (", "), you include the strings "Mr. " and "Ms. " in the col_delimiter array constant, so that the function uses the titles themselves to separate the text. To ignore empty values, you set the ignore_empty argument to TRUE.
=TEXTSPLIT(A2, {" ",", ","Mr. ","Ms. "}, ,TRUE)
Now, the results are absolutely perfect!
TEXTSPLIT alternatives
In Excel versions where the TEXTSPLIT function is not supported, you can divide strings by using different combinations of the SEARCH / FIND function with LEFT, RIGHT and MID. In particular:
- Case-insensitive SEARCH or case-sensitive FIND determines the position of the delimiter within a string, and
- The LEFT, RIGHT, and MID functions extract a substring before, after or between two instances of the delimiter.
In our case, to split the values separated by a comma and a space, the formulas go as follows.
To extract the name:
=LEFT(A2, SEARCH(",", A2, 1) -1)
To pull the score:
=MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)
To get the result:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)
For the detailed explanation of the formulas' logic, see How to split strings by character or mask.
Please keep in mind that unlike the dynamic array TEXTSPLIT function, these formulas follow the traditional one-formula-one-cell approach. You enter the formula in the first cell, and then drag it down the column to copy to the below cells.
The screenshot below shows the results:
That's how to split cells in Excel 365 by using TEXTSPLIT or alternative solutions in earlier versions. I thank you for reading and hope to see you on our blog next week!
Practice workbook for download
TEXTSPLIT function to split strings – formula examples (.xlsx file)
36 comments
Please help me to split below numbers separated from text
Enoch Al Ahsa Station Juba 6018
Hi Joshua!
You can find the answer to your question in this article: Extract number from text string.
For example:
=IFERROR(RIGHT(A1, LEN(A1) - MAX(IF(ISNUMBER(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A1))), 0))), "")
Hi I kindly request for your assistance. This is my data scanned from a medicine. This is from a QR code and it comes out as 1 line. I need to separate the batch number, expiry, manufacture date and serial.
010628108600235310130097|172402022100000000015S1X
Here's what I want as a result
130097 02/2021 02/2024 00000000015S1X
Hi! This is a string without any delimiting characters to split it. You can extract the desired characters from the text string based on their position. We have a special tutorial on this. Please see Excel substring functions to extract text from cell. For example:
=MID(A1,19,6)
Hi
I have multi line Text in a cell with inconsistent delimiters.
I'd like to split to rows using the line break delimiter.
I can see i can use the "other" delimiter in Text to Columns using Alt0010 to specify the line delimiter but I can not find a solution to split into Rows ( rather than columns )
Must I split to Columns and then transpose ?
I can select Text ( Double Click and select text in Cell ) and then paste and it pastes to rows but this is very manual.
Hoping there is a way thanks
Hi! The Excel Text to Columns tool can only split text by columns. You can then use the TRANSPOSE function to swap rows and columns.
You can split the text in a cell by rows using the Split Text Wizard. It is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and check how it works for free.
Hi
I tried using this textsplit formula exactly the same with your example above... but the result is "#NAME?".
Cell A2 : Aiden, 93, Excellent
Cell B2 : =TEXTSPLIT(A2; ", ")
Result in cell B2 : #NAME?
* My excel formula setting uses semicolon (not a comma)
Plz kindly explain ..
SOS :) I like to troubleshoot, but not knowing Excel as well and after a couple days, I'm waving my flag. It's a very old directory that I'm cleaning up. Can anyone help with this? (Hope I explain well!)
I have a column with different delimiters (imported as below). I've managed to separate some names that do not contain parentheses or the title of Mr & Mrs, but the names that imported as below are tough. (Some names have a Mr. & Mrs at the end or a M/M) I'm not sure if I need TRUE? And, I have a blank row in between each line item, so not sure how to omit the formula from being applied. Thanks for any help! :)
Example: Alekna,Michael (Christin),Mr & Mrs
Trying to separate and remove the parentheses and include the title Mr & Mrs in my "fourth" column.
Here's my formula attempt:
=TEXTSPLIT(A13, {" ",",","Mr. & Mrs.","M/M"},,TRUE)
Hi! If you have differently formatted names written in a column, try the Split Names tool to get first, last, and middle names in individual cells. The tool is included in the Ultimate Suite for Excel and can be used in a free trial to see how it works.
Hi Alexander! Many thanks for your reply! Very appreciative! I'll give it a shot :)
I have a few hundred rows and each row has a column with email-addresses. Both internal and external addresses. The internals are not interesting, only the external ones.
Suppose I have the following email-address: name@ company.com and the formula should result in company. What would be the correct formula.
I have been struggling a bit with the textsplit function but can't get in to work.
Hi! To extract a domain from an email address, you can use regular expressions. You can find the examples and detailed instructions here: How to extract substrings in Excel using regular expressions (Regex). Here is an example formula:
=REPLACE(RegExpExtract(A1, "@([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})"), 1, 1, "")
I recommend paying attention to the Regex tool. You can find, extract, compare, delete, or replace strings that match the regular expression pattern you enter. You don't need to install any VBA code. It is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and check how it works for free.
Hello
I want split this text : A1={a b c ; e , f g h I }
Result:
A2= {a b}, B2= {b},C2= {f g},D2= {g h},E2= {e}
Please solve my essue.
Hi! Remove all unnecessary characters from the text using these instructions: How to delete special / unwanted characters in Excel
TEXTSPLIT(TRIM(SUBSTITUTE( SUBSTITUTE(SUBSTITUTE( SUBSTITUTE(A1,",",""),";",""),"}",""),"{",""))," ")
All your results have a different pattern. So select the letters you want using the CHOOSECOLS function. For example, {a b} :
="{"&TEXTJOIN(" ",, CHOOSECOLS(TEXTSPLIT(TRIM(SUBSTITUTE( SUBSTITUTE(SUBSTITUTE( SUBSTITUTE(A1,",",""),";",""),"}",""),"{",""))," "),1,2))&"}"
Hello, I am wondering if there is a simple way using either TEXTSPLIT or Convert to Table to split text from a cell based on the last word/number in the cell.
I have data that has usually a number (with 2 decimal places i.e. ***.**) at the end of the text in the cell. I am trying to find a way to split the data such that the cell is split into two based on the last text item i.e number. The only way I can figure out how to do this which is very tedious for large datasets, is to ADD a delimiter in front of the last text item (number) for each cell and then use the delimiter method with Convert to Table to split the cells. I have given a fake example of data below that is similar, as you can see the preceding text is variable in that it is number and text and various lengths, and the final text in the cell is a number:
Number of houses built in 2019 458.00
Insurance Payment May 2022 151.46
Item#XYZ6785ERYT for contractor 1096.43
Hours billed for labour 3098.75
Bicycle racks 43.00
Credit 0.99
Hello! To extract a number with two decimal digits at the end of a text string, you can use regular expressions. Here are instructions with examples for you: How to extract substrings in Excel using regular expressions (Regex). For example:
=RegExpExtract(A1, "(\s[0-9]+\.[0-9]{2})\b")
I recommend paying attention to the Regex Tools. In this case, you do not need to install the VBA code. It is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and check how it works for free.
Hello,
I have the following issue - I have some text written in excel, and some times this text is longer then 255 chars. I need to import this text in a different software, but this software can not contain more than 255 chars in one text column. Is there a way to split the text if it is longer than 255 chars, and move the rest of it in the next cell?
Thanks.
Hi! To get the first 255 characters from text, use the formula:
=MID(A1,1,255)
To extract characters after 255, use the formula:
=MID(A1,256,255)
You can learn more about MID function in Excel in this article on our blog.
Hello,
How do I split one cell with multiple lines in it into separate columns with a formula?
For example, the below is all in one cell with tabs in between:
Name
Address
Identification
I know the delimiter on text to column is Ctrl J, but that doesnt translate when trying to split with a formula.
Thank you
Hello! I believe the following formula will help you solve your task:
=TEXTSPLIT(A1,CHAR(10))
Hello:
Is there any way to run formulas to separate information in multiple cells in a row, or do you need to run each one separately. For example, right now my data is in a row and two cells contain the following information.
Row 1 - Cell A1: Jon Doe (Director) / Jane Doe (Manager) / Jack Doe (Sales)
Row 1 - Cell B1: jon @anyemail.com; jane@ anyemail.com; jack@ anyemail.com
Ultimately, I'd like the row to appear as follows:
A1: Jon Doe
B1: jon @anyemail.com
C1: Jane Doe
D1: jane @anyemail.com
E1: Jack Doe
F1: jack @anyemail.com
Right now, I am running the formulas for each cell on separate sheets and then piecing the information back together on a row.
Appreciate any help you can offer if this is doable. Thanks .
Hello!
Separate the text from cells A1 and B1 with the TEXTSPLIT function. Combine these values into one array with the function HSTACK. Place the values on the one row using the TOROW function.
Try this formula:
=TOROW(HSTACK(TEXTSPLIT(A1,," / "),TEXTSPLIT(B1,,"; ")))
how do I split text to be in 1 column and numbers in the next, with no delimiter?
here is an example:
the568
hinl658
thanks123
a69822
lot86212
Hi! To extract letters and numbers separately from text, try the custom function RegExpExtract. See this manual for detailed instructions and examples: How to extract substrings in Excel using regular expressions (Regex).
To extract letters
=RegExpExtract(A1, "[A-Za-z]", 1)
To extract numbers
=RegExpExtract(A1, "\d+", 1)
I'd recommend you to have a look at our Regex Tools, that are part of Ultimate Suite for Excel, you can find, extract, remove, or replace strings that match a pattern you enter. You can install it in a trial mode and check how it works for free.
Hi, I want to extract each values before space & delimiter is yr,yr,k3,p2,ym. How do I do that. I am familiar with delimiter, but want to learn the formula to do that.
TEXT STRING
TX01 INR 80YR TX02 INR 50YR TX03 INR 3184K3
TX04 INR 236P2 TX05 INR 142YM
answer required.
find the below unique delimiter value in cell A1 & A2 get the value/number display before that
YR 80
YR 50
K3 3184
P2 236
YM 142
note: delimiter place is change randomly
Hi!
Try using TEXTAFTER and TEXTBEFORE functions
For example,
=TEXTAFTER(TEXTBEFORE(C1, "YR",1)," ",-1)
how can we split number with formula.
example =1+2+3+4+12+36
Assuming that formula is in A1
=Textsplit(formulatext(A1),{"=","+"},,True)
Spent hours on this can’t get it to work! All I want is a table that you can enter a full name in column A, press enter and it splits it into separate names in columns B, C & E (1st, middle, surname) Ive got one that splits dates that the whole team can use on sharepoint, so useful. Any tips? Thank you ?
Hello!
If I understand your task correctly, you can find the examples and detailed instructions here: How to separate names in Excel: split first and last name into different columns.
I need to know how to delete the last series of a string but that last section length may vary (5 or 6 characters). For example from this string I need to delete the value 1576525: ir158045-17348-1576525 but for this one, I need to delete 173487: ir158034184-173487 or in this one delete 1798867:
ir1505-151809-154896-1798867
Hi!
Use Excel substring functions to extract text from cell:
=LEFT(A1, SEARCH("#", SUBSTITUTE(A1,"-","#", LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1)
Hope this is what you need.
Please help me...How do i split this? 11)AWARD 9879, xxx Hurricane, Fuj, 16-18 Aug (V 228 1971 227)
I only want these values to be split:
9879
xxx Hurricane
Fuj
16-18 Aug
V 228 1971 227
please help me
Hi!
You want to split text on different delimiters without a pattern. This cannot be done with a formula. Try to use Text to Columns tool.
for those like me who yet have Textsplit available, how to split text into array?
Thanks ahead!
Hello Sunny,
To split text into multiple columns, you can use older functions that work in all Excel versions. The formulas are slightly more complex, but they do work. For more details, please see the "TEXTSPLIT alternatives" section of this tutorial.