SPLIT Function in Google Sheets
Divides text around specified delimiters and spills the parts into separate cells. The inverse of TEXTJOIN — turns one string into many.
Syntax
SPLIT(text, delimiter, [split_by_each], [remove_empty_text])Returns: A horizontal array of the split pieces, spilled into adjacent cells.
Excel equivalent: TEXTSPLIT (Microsoft 365 only, very similar)
Parameters
| Name | Required | Description |
|---|---|---|
| text | Required | The string to split. |
| delimiter | Required | Character(s) to split on. Can be a single character or a multi-character string. |
| split_by_each | Optional | TRUE (default) splits on each character of delimiter individually. FALSE treats delimiter as a single multi-char separator. |
| remove_empty_text | Optional | TRUE (default) drops empty pieces. FALSE keeps them, producing blanks for consecutive delimiters. |
Examples
Split full name into parts
=SPLIT(A2, " ")Splits "Alice Smith Jones" into [Alice, Smith, Jones] across three columns.
Parse CSV line
=SPLIT(A2, ",")Splits comma-separated values into individual cells.
Multi-character delimiter
=SPLIT(A2, " -- ", FALSE)Splits on the exact string " -- ", not on each of the characters individually. The FALSE is critical here.
When to use an alternative
- REGEXEXTRACT with capture groups — Your delimiter is a pattern, not a fixed string.
- LEFT / RIGHT / MID with FIND — You only need one specific piece and want explicit positional logic.
- Apps Script + JavaScript split() — You need programmatic control over edge cases.
Common errors and how to fix them
Extra blank columns
Cause: remove_empty_text set to FALSE and source has consecutive delimiters.
Fix: Leave default TRUE unless you need positional alignment of empty pieces.
Splits on each character of delimiter
Cause: split_by_each defaults to TRUE.
Fix: Pass FALSE explicitly when your delimiter is a multi-character string you want treated as a unit.
#REF!
Cause: Spilled output would overwrite content in adjacent cells.
Fix: Clear the cells to the right of the formula.
Related functions
Frequently Asked Questions
How do I split into rows instead of columns?
SPLIT returns a horizontal array (across columns). To get a vertical array (down rows), wrap with TRANSPOSE: TRANSPOSE(SPLIT(A2, ",")).
Can SPLIT handle quoted CSV strings?
Not natively — SPLIT treats every comma as a delimiter, including commas inside quoted strings. For proper CSV parsing use IMPORTDATA from a CSV file, or write a regex in REGEXEXTRACT, or use Apps Script.