Split text into two separate strings
You have a single text field with content like "First part / Second part" and need to split it into two separate formula fields. Here's how to do it with Airtable formulas.
Basic split by forward slash
If your text looks like "This is the first part / This is the second part":
First field (everything before the "/"):
LEFT({Text}, FIND("/", {Text}) - 2)
Second field (everything after the "/"):
RIGHT({Text}, LEN({Text}) - FIND("/", {Text}) - 1)
How it works
FIND("/", {Text})locates the position of the "/" character in your textLEFT()extracts characters from the start up to (position - 2) to exclude the "/" and the space before itRIGHT()extracts from the end, calculating the start position after the "/" and space
Split by other delimiters
Split by comma
First field:
LEFT({Text}, FIND(",", {Text}) - 1)
Second field:
RIGHT({Text}, LEN({Text}) - FIND(",", {Text}) - 1)
Split by pipe character
First field:
LEFT({Text}, FIND("|", {Text}) - 1)
Second field:
RIGHT({Text}, LEN({Text}) - FIND("|", {Text}) - 1)
Split by dash or hyphen
First field:
LEFT({Text}, FIND("-", {Text}) - 1)
Second field:
RIGHT({Text}, LEN({Text}) - FIND("-", {Text}) - 1)
Handle missing delimiters
If the delimiter might not exist in some records, wrap the formula in an IF() statement to avoid errors:
First field (with fallback):
IF(
FIND("/", {Text}),
LEFT({Text}, FIND("/", {Text}) - 2),
{Text}
)
Second field (with fallback):
IF(
FIND("/", {Text}),
RIGHT({Text}, LEN({Text}) - FIND("/", {Text}) - 1),
""
)
This ensures:
- If the delimiter exists, the text is split correctly
- If no delimiter is found, the first field shows the original text and the second field is empty
Trim whitespace
If your delimiter might have inconsistent spacing, use TRIM() to clean up the results:
First field:
TRIM(LEFT({Text}, FIND("/", {Text}) - 2))
Second field:
TRIM(RIGHT({Text}, LEN({Text}) - FIND("/", {Text}) - 1))
TRIM() removes leading and trailing spaces from the extracted text.
Split by first space
To split a full name into first and last name (assuming single space):
First name:
IF({Full Name}, LEFT({Full Name}, FIND(" ", {Full Name}) - 1))
Last name:
IF({Full Name}, RIGHT({Full Name}, LEN({Full Name}) - FIND(" ", {Full Name})))
Note: This assumes exactly one space. For names with middle names or multiple spaces, you'll need a more complex approach.
Adjusting for spacing
The offset in the LEFT() and RIGHT() formulas depends on how your delimiter is spaced:
FIND("/", {Text}) - 2removes the "/" and one space before it (for" / ")FIND("/", {Text}) - 1removes only the "/" (for"/"with no space)FIND("/", {Text})keeps the "/" in the result (not recommended)
Always test with your actual data to get the spacing right.
Common use cases
Split "City, State"
City field:
LEFT({Location}, FIND(",", {Location}) - 1)
State field:
TRIM(RIGHT({Location}, LEN({Location}) - FIND(",", {Location})))
Split "Name - Description"
Name field:
TRIM(LEFT({Text}, FIND("-", {Text}) - 1))
Description field:
TRIM(RIGHT({Text}, LEN({Text}) - FIND("-", {Text}) - 1))
Tips and best practices
Always check for the delimiter
Use IF(FIND(...)) to avoid errors when the delimiter doesn't exist:
IF(FIND("/", {Text}), LEFT({Text}, FIND("/", {Text}) - 2), {Text})
Use TRIM for cleanup
Always wrap extracted values in TRIM() to handle inconsistent spacing:
TRIM(LEFT({Text}, FIND("/", {Text}) - 2))
Test with edge cases
Before deploying, test with:
- Empty strings
- Text without the delimiter
- Text with multiple delimiters (formula will use the first one)
- Text with leading/trailing spaces
When formulas aren't enough
Formulas work great for splitting into 2 fields with a consistent delimiter. For more complex scenarios, consider:
- Scripts: When you need to split into multiple records or handle variable patterns
- External tools: Make, Zapier, or other automation tools for complex parsing
- Regex: Use
REGEX_EXTRACT()for pattern-based extraction (available in Airtable formulas)
Quick reference
| Goal | Formula |
|---|---|
| Split by "/" (first part) | LEFT({Text}, FIND("/", {Text}) - 2) |
| Split by "/" (second part) | RIGHT({Text}, LEN({Text}) - FIND("/", {Text}) - 1) |
| Split with safety check | IF(FIND("/", {Text}), LEFT({Text}, FIND("/", {Text}) - 2), {Text}) |
| Split and trim whitespace | TRIM(LEFT({Text}, FIND("/", {Text}) - 2)) |
| Split by first space | LEFT({Text}, FIND(" ", {Text}) - 1) |
References
Community discussion with solutions for splitting strings: Formula to break a string of text onto 2 separate strings of text