IF when a field contains specific text
If your field is a Multiple select (e.g., Camp, Membership, Donation), in formulas it behaves like a comma‑separated string. To test whether a given choice is present, use FIND or SEARCH.
Case‑sensitive (FIND)
IF(
FIND("Member", {Tags}),
"Member",
"Nonmember"
)
Notes:
- Returns the position if found; blank if not. Any non‑zero value is treated as truthy in
IF. - Exact case matching. Use
SEARCHfor case‑insensitive.
Case‑insensitive (SEARCH)
IF(
SEARCH("member", LOWER({Tags})),
"Member",
"Nonmember"
)
Tip: Wrapping the field in LOWER() lets you search once in lowercase.
Avoid partial matches
If choices could overlap (e.g., VIP vs VIP Gold), pad with separators to avoid false positives:
IF(
FIND(", Member,", ", " & {Tags} & ", "),
"Member",
"Nonmember"
)
This forces full‑token matching in the comma‑separated list.
Multiple categories
SWITCH(
TRUE(),
FIND("Camp", {Tags}), "Camp",
FIND("Membership", {Tags}), "Member",
FIND("Donation", {Tags}), "Donor",
"Other"
)
SWITCH(TRUE(), …) is a clean pattern for priority checks.
“Yesterday” in formulas
Common tasks: flag records from yesterday, or branch logic based on yesterday’s date.
Check if a date is yesterday
IS_SAME(
{Date},
DATEADD(TODAY(), -1, 'days'),
'day'
)
Returns 1 if {Date} is on the day before today (in the base’s timezone).
Conditional label for yesterday
IF(
IS_SAME({Date}, DATEADD(TODAY(), -1, 'days'), 'day'),
"Yesterday",
""
)
Combine with "contains" logic
Example: “Count as Member (Yesterday only)”
IF(
AND(
FIND("Member", {Tags}),
IS_SAME({Date}, DATEADD(TODAY(), -1, 'days'), 'day')
),
"Member (Yesterday)",
""
)
Tips
TODAY()recalculates daily; for precise time windows, useNOW()with care and consider time zone settings.- For case‑insensitive contains without token pitfalls,
REGEX_MATCHcan also be used, thoughFIND/SEARCHis usually sufficient.
FAQ
Does FIND work on Multiple Select fields in Airtable?
Yes. Airtable treats Multiple Select values as a comma-separated string in formulas. FIND(“Camp”, {Tags}) will return a position if “Camp” is one of the selected options.
What is the difference between FIND and SEARCH in Airtable?
FIND() is case-sensitive and SEARCH() is case-insensitive. Both return the character position if the substring exists, or blank if it does not. Use SEARCH() when you cannot guarantee consistent casing.
Can I combine a “contains” check with a date condition in one formula?
Yes. Wrap both conditions in AND() inside an IF(). For example: IF(AND(FIND(“Member”, {Tags}), IS_SAME({Date}, DATEADD(TODAY(), -1, 'days'), 'day')), “Match”, “”).
Does TODAY() update automatically in Airtable formulas?
TODAY() recalculates once per day in the base's configured timezone. It does not update in real time. For time-sensitive checks within the same day, use NOW() instead.
Let your forms handle the tagging
Instead of writing formulas to categorize submissions after the fact, use Filla to build Airtable forms with conditional logic that routes data into the right fields automatically.
- Conditional fields show or hide options based on previous answers
- Submissions write directly to your Airtable base in real time
- Supports linked records, file uploads, and field validation
- Start free with 5 forms and unlimited submissions
Source
Community Q&A on using IF with “contains” for select text: IF formula when field “contains” select text