The TEXTSPLIT function was officially introduced with Excel 2021, but thanks to Modern Functions Update (MFU) you can now run it on your Excel 2007, 2010, 2013, 2016, 2019 and 2021 versions. It works exactly as its original Microsoft counterpart.
Description
The TEXTSPLIT function splits a text string into multiple values using specified delimiters. The result is a dynamic array that spills into adjacent cells – across columns, down rows, or both.
Think of it as the Text to Columns wizard, but in formula form and much more powerful. Unlike the wizard, TEXTSPLIT:
- Does not overwrite your original data
- Can split into both columns and rows simultaneously
- Supports multiple delimiters at once
- Updates automatically when source data changes
This is particularly useful for:
- Parsing imported data: Split CSV files, reports, or web data
- Cleaning names: Separate first and last names
- Extracting parts: Isolate specific components from structured text
- Data preparation: Prepare text for further analysis
- Creating dynamic arrays: Build flexible data structures
Syntax
=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

Examples
Basic Usage – Split into Columns
To split text separated by commas into columns:
=TEXTSPLIT("John,Doe,30,New York", ",")
Returns: John | Doe | 30 | New York (spilled across four columns).
Split into Rows
To split text into rows instead of columns, leave col_delimiter empty and specify row_delimiter:
=TEXTSPLIT("John,Doe,30,New York", , ",")
Returns the same values in four rows.
Split into Both Rows and Columns (2D Array)
To split text into a 2D array, specify both delimiters:
=TEXTSPLIT("1,2,3;4,5,6", ",", ";")
Returns:
Multiple Delimiters
Use an array constant {} to specify multiple delimiters:
=TEXTSPLIT("apple-orange,grape", {",", "-"})
Returns: apple | orange | grape (splits on both comma and hyphen).
Ignoring Empty Values
With consecutive delimiters:
=TEXTSPLIT("John,,Doe", ",")
Default behavior (ignore_empty = FALSE) returns: John | '' | Doe (with an empty cell).
To remove the empty cell:
=TEXTSPLIT("John,,Doe", ",", , TRUE)
Returns: John | Doe (no empty cell).
Case-Insensitive Matching
If you need to split on “x” regardless of case:
=TEXTSPLIT("4 FT 0", " ft ", , , 1)
Returns: 4 | 0 (finds “FT” ignoring case).
Padding Missing Values
In a 2D array where some values are missing:
=TEXTSPLIT("Red-Blue;Green", "-", ";", , , "N/A")
If a value is missing, "N/A" appears instead of #N/A.
Using Cell References
=TEXTSPLIT(A1, ",")
Splits the text in cell A1 using comma as delimiter.
With Other Functions
Extract the third item from a split:
=INDEX(TEXTSPLIT(A1, ","), 1, 3)
Returns the third element from the split array.
Parsing Dates
=TEXTSPLIT(TEXT(B3, "m/d/yyyy"), "/")
Splits a date into month, day, and year components.
TEXTSPLIT vs Text to Columns Wizard
| Feature | TEXTSPLIT | Text to Columns Wizard |
|---|---|---|
| Preserves original data | ✅ Yes | ❌ No (overwrites) |
| Row delimiter support | ✅ Yes | ❌ No |
| Multiple delimiters | ✅ Yes | ❌ No |
| Dynamic updates | ✅ Yes | ❌ No |
| Formula-based | ✅ Yes | ❌ No (manual) |
Common Problems
Notes
- ✅ Fully tested – The implementation in Modern Functions Update works identically to Microsoft’s original function introduced in Excel 2024/Microsoft 365.
- ✅ The function is fully compatible with Excel 2007, 2010, and all later versions.
- ℹ️ At least one delimiter (
col_delimiterorrow_delimiter) must be provided. - ℹ️ If both delimiters are the same,
col_delimiteris prioritized. - ℹ️
TEXTSPLITis the inverse ofTEXTJOIN– it splits whatTEXTJOINcombines. - ⚠️
TEXTSPLITis a dynamic array function – results spill into adjacent cells. - ℹ️ To extract a single value before or after a delimiter, consider
TEXTBEFOREorTEXTAFTER.
See Also
TEXTBEFORE– Returns text before a delimiterTEXTAFTER– Returns text after a delimiterTEXTJOIN– Joins text with delimitersUNIQUE– Returns unique values from a rangeFILTER– Filters a range based on criteriaIFNA– Handles#N/Aerrors gracefully