Split one string into two fields
You have a single text field with content like "First part / Second part" and need to split it into two separate fields. Airtable formulas can extract the text before and after a delimiter.
Basic split by delimiter
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 "/" characterLEFT()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
Replace "/" with "," in the formulas:
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:
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, use a more complex approach or regex.
Split by first number
If you have text like "Angola 8 April 1994" and want to separate the location from the date:
Location field:
TRIM(SUBSTITUTE({Original}, DATETIME_FORMAT({Date}, "D MMMM YYYY"), ""))
Date field:
DATETIME_PARSE({Original}, "D MMMM YYYY")
This works by:
- Parsing the date from the string
- Formatting it back to the same format
- Removing that formatted date from the original string
- Trimming the remaining text
Common patterns
Extract text before first delimiter
LEFT({Text}, FIND("/", {Text}) - 2)
Extract text after first delimiter
RIGHT({Text}, LEN({Text}) - FIND("/", {Text}) - 1)
Extract text before last delimiter
If you have multiple delimiters and want everything before the last one:
LEFT({Text}, FIND("/", REVERSE({Text})))
This is more complex and may require additional logic depending on your use case.
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})
Consider spacing
If your delimiter has spaces around it (like " / "), adjust the offset:
FIND("/", {Text}) - 2removes the "/" and one space before itFIND("/", {Text}) - 1removes only the "/"FIND("/", {Text}) - 3removes the "/" and spaces on both sides
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
- Text with leading/trailing spaces
When formulas aren't enough
Formulas work great for splitting into 2-3 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