Watch our latest video available on Youtube.
Tutorials/Tutorials / Formulas

Airtable IF Statements: The Complete Guide

IF is the most-used formula in Airtable and the one builders get wrong most often. This guide covers everything — basic syntax, nested IFs, combining with AND/OR/NOT, handling blank values, readability patterns, and exactly when to escape to SWITCH. Every example is copy-paste ready.

Beginner to Intermediate14 min readApr 12, 2026

IF is the first formula every Airtable builder learns and the last one they truly master. It looks simple, and for basic cases it is — but production bases live and die on the edge cases: blank values, case sensitivity, nested logic, combining multiple fields. This guide walks through IF from the very first example all the way to the patterns we use in real client work.

If you also need the SWITCH companion piece, see SWITCH vs nested IF. For the full formula reference, start with the Airtable formulas cheat sheet.

The Basic Syntax

Every IF statement has the same shape:

IF(condition, value_if_true, value_if_false)

Three arguments, separated by commas:

  1. condition — an expression that evaluates to true (any non-zero value or non-empty string) or false (zero, blank, or empty string).
  2. value_if_true — what IF returns when the condition is true.
  3. value_if_false — what IF returns when the condition is false.

Your first IF:

IF({Status} = 'Active', 'Yes', 'No')

Read it as a sentence: "If the Status field equals 'Active', return 'Yes'. Otherwise, return 'No'."

A few rules to internalize from the start:

  • Field names go in curly braces: {Status}, not Status.
  • Text literals use single quotes: 'Active', not "Active".
  • The = operator is case-sensitive: 'Active''active'.
  • Empty fields are falsy: IF({Email}, 'has email', 'no email') works without an explicit comparison.

Comparison Operators You Can Use

The condition inside an IF can be any comparison. These all work in Airtable:

OperatorMeaningExample
=Equal to{Status} = 'Active'
!=Not equal to{Status} != 'Archived'
>Greater than{Deal Value} > 10000
<Less than{Days Overdue} < 7
>=Greater than or equal{Score} >= 90
<=Less than or equal{Temperature} <= 0

Examples:

// Flag high-value deals
IF({Deal Value} >= 10000, '💰 Enterprise', 'Standard')

// Check if a record is past due
IF({Days Until Due} < 0, '🔴 Overdue', '🟢 On Track')

// Exclude archived records from a count
IF({Status} != 'Archived', 1, 0)

The last pattern — using IF with 1 and 0 — is how you build "count this row?" helper fields that you can then SUM or use in rollups.

Combining Conditions with AND, OR, NOT

Real business logic usually checks more than one thing. AND, OR, and NOT let you stack conditions inside a single IF.

Syntax:

AND(condition1, condition2, ...)
OR(condition1, condition2, ...)
NOT(condition)

AND is true only when every condition is true. OR is true when any condition is true. NOT inverts a true/false value.

Examples:

// Open AND high priority → escalate
IF(AND({Status} = 'Open', {Priority} = 'High'), '🔴 Escalate', 'Monitor')

// Any of three statuses → active
IF(OR({Status} = 'New', {Status} = 'In Progress', {Status} = 'Review'), 'Active', 'Closed')

// Not in a terminal state
IF(NOT(OR({Status} = 'Won', {Status} = 'Lost')), 'Open', 'Closed')

// Complex: high priority ticket, not yet resolved, created within the last 7 days
IF(
  AND(
    {Priority} = 'High',
    {Status} != 'Resolved',
    DATETIME_DIFF(TODAY(), {Created}, 'days') <= 7
  ),
  '🔥 Hot',
  'Standard'
)

AND/OR/NOT can nest inside each other, and you can use as many conditions as you need. But once you pass three or four conditions in a single AND or OR, it's worth stepping back and asking whether a SWITCH or a helper formula field would make the logic easier to maintain.

Nested IF — When You Have More Than Two Outcomes

IF only returns one of two values. For three or more outcomes, you nest another IF inside the value_if_false position of the outer one.

Pattern:

IF(
  condition1,
  result1,
  IF(
    condition2,
    result2,
    IF(
      condition3,
      result3,
      default_result
    )
  )
)

Example: letter grades from a score

IF({Score} >= 90, 'A',
  IF({Score} >= 80, 'B',
    IF({Score} >= 70, 'C',
      IF({Score} >= 60, 'D', 'F'))))

Read this top to bottom: if the score is at least 90, return 'A'. Otherwise, check the next condition. And so on. The final fallback ('F') is the default when no earlier condition matched.

Example: deal stage health

IF({Days Since Last Activity} > 30, '🔴 Cold',
  IF({Days Since Last Activity} > 14, '🟡 Warming',
    IF({Days Since Last Activity} > 7, '🟢 Active', '🔥 Hot')))

Nested IF is the right tool when the branches use comparisons or ranges. If your branches are all exact-value matches on a single field, you're in SWITCH territory — see SWITCH vs nested IF.

Readability: Indentation Saves Lives

Airtable's formula editor lets you put line breaks and spaces wherever you want — they don't affect the formula's behavior. Use that freedom. A well-indented nested IF is ten times easier to debug than the same formula written as a single line.

Don't do this:

IF({Score}>=90,'A',IF({Score}>=80,'B',IF({Score}>=70,'C',IF({Score}>=60,'D','F'))))

Do this:

IF(
  {Score} >= 90, 'A',
  IF(
    {Score} >= 80, 'B',
    IF(
      {Score} >= 70, 'C',
      IF(
        {Score} >= 60, 'D',
        'F'
      )
    )
  )
)

Same formula. Massively easier to edit six months from now. Your future self and your teammates will thank you.

Handling Blank Fields

Blank fields are the single biggest source of bugs in Airtable IF formulas. The rules to remember:

  • A blank field is falsy: IF({Email}, 'has value', 'empty') works without an explicit comparison.
  • {Field} = '' does not always work to detect blanks. Use IF({Field}, ...) instead.
  • BLANK() is Airtable's explicit blank value, useful for returning blank from an IF: IF({Score}, {Score} * 1.1, BLANK()).
  • LEN({Field}) = 0 reliably detects empty text.

Common blank-handling patterns:

// Default value for blank fields
IF({Phone}, {Phone}, 'No phone on file')

// Conditional concatenation (avoid extra spaces)
{First Name} & IF({Middle Name}, ' ' & {Middle Name}, '') & ' ' & {Last Name}

// Return blank instead of 0 for missing data
IF({Revenue}, {Revenue} / {Headcount}, BLANK())

// Flag missing required fields
IF(AND({Email}, {Phone}, {Company}), '✅ Complete', '❌ Missing Info')

Case Sensitivity: The Silent Bug

{Status} = 'Active' is not the same as {Status} = 'active'. Airtable's = operator is case-sensitive, which trips up every new builder eventually.

Two ways to fix it:

1. Normalize both sides with UPPER or LOWER:

IF(UPPER({Status}) = 'ACTIVE', 'Running', 'Stopped')

2. Use TRIM in combination when input may also have whitespace:

IF(LOWER(TRIM({Status})) = 'active', 'Running', 'Stopped')

The second form is what you want when the data comes from user input, a form, or an external sync where you can't control the formatting. It's slightly more verbose but eliminates a whole class of subtle bugs.

Type Coercion Traps

IF's comparison operators assume both sides are the same type. Comparing a number to a text version of that number can fail silently.

// This returns false if {Score} is a number and '100' is text
IF({Score} = '100', 'Perfect', 'Keep Going')

// Fix: coerce both sides to text
IF({Score} & '' = '100', 'Perfect', 'Keep Going')

// Or coerce the text to a number
IF({Score} = VALUE('100'), 'Perfect', 'Keep Going')

The pattern {Field} & '' appends an empty string to force the value to be treated as text. It looks ugly but it works reliably.

IF Inside Other Formulas

IF can be nested inside almost any other formula. Two common patterns:

IF inside CONCATENATE:

{First Name} & ' (' & IF({VIP}, '⭐ VIP', 'Standard') & ')'

IF inside SUM (through a helper field):

Create a helper formula field that returns 1 when a record matches your condition and 0 otherwise:

IF(AND({Status} = 'Won', {Closed Date} >= DATEADD(TODAY(), -30, 'days')), 1, 0)

Then sum the helper field in a rollup to count matching records. This is the standard workaround for filtered counts in rollups.

When to Use SWITCH Instead

A nested IF that's mapping a single field's exact values to outputs is the textbook case for SWITCH. Compare:

Nested IF:

IF({Priority} = 'P1', '🔴 Critical',
  IF({Priority} = 'P2', '🟠 High',
    IF({Priority} = 'P3', '🟡 Medium',
      IF({Priority} = 'P4', '🟢 Low', '⚪ Unknown'))))

SWITCH:

SWITCH({Priority},
  'P1', '🔴 Critical',
  'P2', '🟠 High',
  'P3', '🟡 Medium',
  'P4', '🟢 Low',
  '⚪ Unknown'
)

Same result. Half the parentheses. Much easier to edit. See the full SWITCH guide for the deep dive on when each function is the right choice.

The general rule: if your nested IF is checking {SameField} = 'something' at every level, refactor to SWITCH. If your branches use ranges, multiple fields, or AND/OR, stay with IF.

Performance and Good Habits

Some parting best practices from real engagements:

  • Keep IFs under five levels deep. Deeper than that and the logic almost certainly belongs in a helper field or a SWITCH.
  • Add comments with inline helper fields. Airtable doesn't support comments inside formulas, but you can create a "Formula Notes" long text field next to your formula to document intent.
  • Use helper formula fields liberally. Breaking a big formula into three smaller, named helper fields is nearly always more maintainable than one monster formula — even if it adds columns.
  • Test before production. When you change a load-bearing formula, duplicate it into a new field and compare old vs new values across the whole base before swapping.

The Bigger Picture

IF is where formulas become logic. Once you're comfortable with nested IFs, AND/OR, blank handling, and knowing when to reach for SWITCH, you can express almost any business rule directly in a formula field — no automations, no scripts, no external tools.

Formulas are also the single most common source of quiet bugs in Airtable bases. A nested IF with a subtly wrong comparison can silently misclassify hundreds of records for months. The rules in this guide — normalize case, handle blanks explicitly, use SWITCH when appropriate, indent for readability — prevent most of them.

Get Your Formulas Audited

If you've inherited a base where IF formulas have grown six levels deep and nobody can tell whether they still work, Business Automated does Airtable formula audits and refactors every week. We'll find the bugs, document the logic, and leave the base in a state where the next person who opens it doesn't have to hold their breath. Book a consultation and we'll take a look.

Frequently Asked Questions

Common questions about this tutorial.

Ready to Transform Your Business Operations?

Join 100+ companies that have automated their way to success. Get started today and see the difference.