English
Cleaning and calculating

Writing formulas by hand

Updated 2026-09-04 · 2 min read · For desktop macOS 0.0.9 / Windows 0.0.7

Where the formula editor is, the syntax rules in one table, the three kinds of function you will actually use, and the five reasons a formula comes back empty.


The Formulas panel, grouped into text, date and time, relation and calculation
The Formulas panel, grouped into text, date and time, relation and calculation

Opening the formula editor

Three ways:

  • Click a header to select the column and type straight into the formula bar above.
  • Header dropdown → Define Formula, which opens the full editor: the formula on the left, a Fields list of every usable column code on the right, a live preview of the first few rows below, and function help describing every function.
  • Formulas in the toolbar, browsing by category — text, date and time, relation, calculation — which opens the same editor.

A formula lives on the column and applies to every row. To give a column a formula, add the column first and then define it. An existing data column can also take a formula, but its stored values are replaced by the formula's results — adding a new column is usually the safer move.

Syntax

Rule Example
Reference columns by code, not by name AA6 * AA7
Cross-table is just the other table's code Inside table AB: sumif(AA6, AB1 = AA9)
Function names are case-insensitive SUMIF(...) and sumif(...) are the same
Text goes in double quotes if(AA7 = "PAID", AA6, 0)
Numbers are written plainly AA6 * 1.13
Conditions use comparators, joined with and / or AA6 > 1000 and AA4 = "EAST"
Arithmetic + - * /, brackets allowed

While typing, column codes are highlighted, typing A suggests columns of this and related tables, and typing a function name suggests its arguments.

The three kinds you will actually use

Within one row (each row independent): AA6 * AA7, upper(trim(AA4)), left(AA2, 7), concat(AA3, "-", AA5), if(...).

Across rows (looking at a whole column or table): sumif(column, condition), countif(column, condition), maxif / minif / average / median / distinctcountif. Matching "this row's key" against "the source's key" inside the condition is what makes it a grouped total:

sumif(AA6, AB1 = AA9)     In table AB: sum AA's amount for rows whose month equals this row's month

Across tables: xlookup(this table's key column, source key column, source value column) fetches one field from another table — this is what the Match panel writes.

Every function is listed by category in the function reference.

When the result is empty or an error

  • A column code that does not exist (mistyped, or the column was deleted) — the formula bar marks it red.
  • Arithmetic on a text column — fix the field type first.
  • Cross-table keys that do not match2026-09 against 2026-9, or EAST with a trailing space against EAST. Normalise both sides with trim and dateformat first.
  • Empty for a few seconds after writing it — it is calculating; wait.
  • Circular references (A references B, B references A) are not allowed.

Panels and hand-writing mix freely

A formula a panel produced sits in the formula bar and can be edited; after editing it is still that column's formula. Conversely, a hand-written formula column shows its references in the Workflow graph exactly as a panel-produced one does. Two routes, one destination — take whichever is quicker.

Did this page not answer your question? Browse the help centre, or write to support@tabledi.com — the inbox is read by the people who build TableDI.