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) |
FAQ
Can I split text in Airtable without a formula?
Not directly. Airtable does not have a built-in split function in the UI. You need to use a formula field with LEFT(), RIGHT(), and FIND(), or write a script in the Scripting extension.
What happens if the delimiter appears more than once?
FIND() returns the position of the first occurrence. Your formula will split on the first delimiter only. If you need to split on the last occurrence, use LEN({Text}) - FIND("/", REVERSE({Text})) to locate the final position.
How do I split text into more than two fields?
Each additional field requires a longer formula that accounts for previous splits. For three or more parts, consider using an Airtable script with JavaScript's split() method instead of deeply nested formulas.
Collect clean, structured data from the start
Splitting messy text after the fact is avoidable. With Filla, you can build Airtable forms that collect first name, last name, city, state, and other fields separately, so data lands in the right columns from day one.
- Separate form fields map directly to separate Airtable columns
- Conditional logic shows or hides fields based on previous answers
- Linked record support for relational data
- Start free with 5 forms and unlimited submissions
References
Community discussion with solutions for splitting strings: Formula to break a string of text onto 2 separate strings of text