Skip to content

News, guides and free tools for the SaaS stack

Airtable formulas: the ten you will use most

From combining names to calculating deadlines and conditional status tags, master the 10 essential formulas that power 90% of Airtable bases.

Beginner10 steps12 minBy Guides team · Updated 28 Oct 2026
What you’ll need

An Airtable account with an active base. No coding or mathematical background required.

Airtable formula fields allow you to calculate values across columns in the same record. Unlike spreadsheets where formulas live in individual cells (=A1+B1), Airtable formulas apply to an entire field column, calculating dynamically for every record in your table.

Whether you're building a lightweight CRM, tracking editorial calendars, or automating client portals, these 10 formulas handle 90% of everyday workflows.

Need a quick formula without writing syntax by hand? Use our free interactive Airtable Formula Generator to select functions, plug in your field names, and preview live results.


The three golden rules of Airtable formulas

Before writing your first formula, keep these three syntax rules in mind:

  1. Always wrap field names in curly braces: Write {Status} or {Due Date}. If a field name has spaces, special characters, or numbers, braces are mandatory.
  2. Always wrap literal text in double quotes: "Complete" is text; {Complete} is a field name. Mixing them up causes syntax errors.
  3. Airtable evaluates record-by-record: Formulas cannot directly reference "the row above" or "the row below" without linked records and rollups.

1. CONCATENATE (Combine text and field values)

When you have separate {First Name} and {Last Name} fields, you often need a primary field displaying the full contact name.

CONCATENATE({First Name}, " ", {Last Name})

Pro tip: The & shortcut

In Airtable, the ampersand (&) operator works identically to CONCATENATE and is often faster to read:

{First Name} & " " & {Last Name}

If you want to include static text or labels:

"Invoice #" & {Invoice Number} & " — " & {Client Name}

2. DATETIME_DIFF (Calculate time between two dates)

DATETIME_DIFF calculates the duration between two dates in days, weeks, months, or hours.

DATETIME_DIFF({End Date}, {Start Date}, 'days')

The order rule: Later date first

DATETIME_DIFF computes date1 - date2. To get a positive number, place the later date (e.g. End Date or Target Date) first:

  • DATETIME_DIFF({End Date}, {Start Date}, 'days') → 14
  • DATETIME_DIFF({Start Date}, {End Date}, 'days') → -14

Supported units include 'days', 'weeks', 'months', 'years', 'hours', and 'minutes'.


3. DATEADD (Calculate future or past deadlines)

Need to set a follow-up date 7 days after an invoice is created, or a review date 30 days out? DATEADD adds or subtracts time units to any date field.

DATEADD({Created Date}, 7, 'days')

To calculate a past date (e.g., 30 days ago), pass a negative number:

DATEADD({Due Date}, -30, 'days')

4. TODAY() & NOW() (Live countdowns & aging)

TODAY() returns the current calendar date, updating continuously. Combine it with DATETIME_DIFF to create a live countdown to project milestones:

DATETIME_DIFF({Deadline}, TODAY(), 'days')
  • If {Deadline} is 5 days in the future, the output is 5.
  • If {Deadline} is today, the output is 0.
  • If {Deadline} was 3 days ago, the output is -3 (overdue).

Use NOW() when you need timestamps down to the current hour and minute.


5. DATETIME_FORMAT (Display friendly, readable dates)

By default, dates generated by formulas can format as long ISO timestamp strings (2026-10-28T14:30:00.000Z). DATETIME_FORMAT turns them into clean, human-readable strings.

DATETIME_FORMAT({Due Date}, 'MMMM D, YYYY')

Output: October 28, 2026

Common format specifiers:

  • 'YYYY-MM-DD' → 2026-10-28 (Standard ISO)
  • 'MM/DD/YYYY' → 10/28/2026 (US style)
  • 'DD/MM/YYYY' → 28/10/2026 (UK / European style)
  • 'MMM D, YYYY' → Oct 28, 2026 (Abbreviated month)
  • 'YYYY-MM-DD h:mm a' → 2026-10-28 2:30 pm

6. IF (Conditional status labels & badges)

The IF function evaluates a condition and returns one value if true, and an alternate value if false:

IF({Status} = "Done", "✓ Complete", "○ Pending")

You can also check numerical thresholds:

IF({Score} >= 80, "🎉 Passed", "⚠️ Needs Review")

If you leave the third argument blank, Airtable returns an empty cell when the condition is false:

IF({Overdue}, "🚨 OVERDUE", "")

7. SWITCH (Cleaner multi-condition branching)

When you need to test a single field against multiple possible values (such as a single-select {Priority} or {Stage} field), nesting multiple IF statements becomes messy:

❌ Messy nested IF:

IF({Priority} = "High", "🔴 Urgent", IF({Priority} = "Medium", "🟡 Normal", "🟢 Low"))

✅ Clean SWITCH alternative:

SWITCH(
  {Priority},
  "High", "🔴 Urgent",
  "Medium", "🟡 Normal",
  "🟢 Low"
)

The last argument acts as the default fallback if none of the cases match.


8. BLANK() (Detect missing data without errors)

Important: Airtable does not have an ISBLANK() function like Google Sheets or Microsoft Excel. Using ISBLANK() triggers an unknown function error.

To check if a field is empty in Airtable, compare it against BLANK():

IF({Phone} = BLANK(), "⚠️ Missing phone number", "✓ On file")

Alternatively, you can test field truthiness directly. If {Phone} contains any data, it evaluates to true:

IF({Phone}, "✓ Provided", "Missing")

9. Safe division & formatted percentages

Dividing numbers in Airtable can cause a #ERROR! if the denominator equals zero or is empty. Always write a safe division check:

IF({Total Tasks} > 0, ROUND(({Completed Tasks} / {Total Tasks}) * 100, 1) & "%", "0%")

How this works:

  1. IF({Total Tasks} > 0, ...) protects against division-by-zero errors.
  2. ROUND(..., 1) limits the result to one decimal place (e.g., 85.5).
  3. & "%" appends the percentage symbol as a formatted string.

10. TRIM, UPPER & LOWER (Text data cleaning)

When importing CSVs or accepting form submissions, text inputs often arrive with inconsistent casing and trailing spaces. These functions normalize your data:

  • Remove extra leading and trailing whitespace:
    TRIM({Company Name})
    
  • Standardize codes or abbreviations to uppercase:
    UPPER({Country Code})
    
  • Normalize emails for deduplication:
    LOWER(TRIM({Email Address}))
    

Quick troubleshooting: Fixing Airtable #ERROR!

SymptomCauseSolution
Unknown functionUsing spreadsheet formulas like ISBLANK or COUNTIFUse {Field} = BLANK() or rollup fields with condition filters.
NaN or #ERROR! on divisionDenominator is 0 or emptyWrap calculation in IF({Denominator} > 0, ..., 0).
Curly brace errorUnbalanced braces or spaces in field nameEnsure {Field Name} matches the exact column name in your table.
Negative date durationArguments in DATETIME_DIFF are invertedPlace the later target date first: DATETIME_DIFF({End}, {Start}, 'days').

Next steps

Was this guide helpful?