What SPLIT Does
The SPLIT function takes a text string and breaks it into individual cells based on a delimiter you specify. Each piece lands in its own adjacent cell, spreading horizontally. It is the go-to function when you receive data crammed into a single column — like full names, addresses, or CSV-style values — and need it separated cleanly.
Syntax
=SPLIT(text, delimiter, [split_by_each], [remove_empty_text])
| Parameter | Description |
|---|---|
| text | The string to split. |
| delimiter | One or more characters to split on. |
| split_by_each | Optional. If TRUE (default), each character in the delimiter string is treated as a separate delimiter. If FALSE, the entire string is used as one delimiter. |
| remove_empty_text | Optional. If TRUE (default), empty strings from consecutive delimiters are removed. If FALSE, empty cells are kept. |
Basic Examples
Split a full name into first and last
| A | |
|---|---|
| 1 | Maria Santos |
=SPLIT(A1, " ")
Result:
| Output Col 1 | Output Col 2 |
|---|---|
| Maria | Santos |
Split a comma-separated list
| A | |
|---|---|
| 1 | red,green,blue |
=SPLIT(A1, ",")
Result:
| Col 1 | Col 2 | Col 3 |
|---|---|---|
| red | green | blue |
Split a file path by slashes
| A | |
|---|---|
| 1 | /home/user/documents/report.pdf |
=SPLIT(A1, "/")
Result:
| Col 1 | Col 2 | Col 3 | Col 4 |
|---|---|---|---|
| home | user | documents | report.pdf |
The leading slash produces an empty piece, but since remove_empty_text defaults to TRUE, that empty value is dropped automatically.
Advanced Examples
Split by a multi-character delimiter
Sometimes data uses a string like " - " or " | " as a separator:
| A | |
|---|---|
| 1 | Tokyo - Japan - Asia |
=SPLIT(A1, " - ", FALSE)
Setting split_by_each to FALSE ensures the function looks for the full string " - " rather than splitting on every space, dash, and space individually.
Result:
| Col 1 | Col 2 | Col 3 |
|---|---|---|
| Tokyo | Japan | Asia |
Extract a domain from an email address
If you only want the domain part of an email, pair SPLIT with INDEX:
=INDEX(SPLIT(A1, "@"), 1, 2)
For A1 = "alex@example.com", this returns example.com. INDEX picks the second piece from the split result without needing a helper column.
Common Mistakes
- Unexpected extra splits when
split_by_eachis TRUE. If your delimiter is", "and you leavesplit_by_eachat its default, the function splits on every comma AND every space separately. Set the third argument toFALSEto treat the delimiter as a single unit. - Running out of room for the output. SPLIT spills horizontally into adjacent cells. If those cells already contain data, you will get a
#REF!error. Make sure there is enough empty space to the right. - Trying to split vertically. SPLIT only expands across columns. If you need the results stacked in rows, wrap it with TRANSPOSE:
=TRANSPOSE(SPLIT(A1, ",")).
SheetAI Tip
Don't want to memorize this syntax? With SheetAI, just type what you need in plain English and the formula is generated for you. Install SheetAI to try it free.