Formulas and calculated columns

A Formula column calculates a number automatically from other columns in the same row — like a spreadsheet cell. It is read-only and recalculates itself whenever the source values change. Alongside it live three sibling column types that also derive their value instead of storing one: Lookup, Rollup, and Reverse links, which read through the connections between tables.

Referencing columns

You write the formula in the table's Structure editor, when the column type is Formula. Inside it, reference another column by writing its name in curly braces: {Column name}. Each reference is converted to a number before calculating:

{Price} * {Quantity}
  • Number, decimal, currency, rating, progress, and other formula columns enter with their numeric value.
  • A checkbox counts as 1 when checked and 0 when not.
  • Multi-value cells (tags, attachments, multiple references) count as the number of items.
  • Text that contains a number is parsed — "R$ 1.234,50" enters as 1234.5; text without digits (and dates) counts as 0.
  • An empty cell counts as 0.
A formula can reference another formula — the calculation order is resolved automatically. Circular references (A depends on B which depends on A) are detected and those columns show no value instead of a wrong number.

Pulling from another table

When the row has a Reference column pointing to another table, the formula can read a numeric field of the linked record with a dot: {Reference.Column}. It uses the first linked record of that reference.

{Product.Unit price} * {Quantity}
An empty reference (no record linked yet) counts as 0. If the linked record or the cited column no longer exists, the formula shows empty rather than inventing a number. Edits in the other table propagate: cross-table formulas are recalculated automatically, including through chains of tables.

Operators

  • Addition, subtraction, multiplication and division: + − * /
  • Division remainder: %
  • Parentheses to group: ( )
  • Negative/positive sign (unary): -{Column}

Functions

round(x[, places])
Rounds x (optionally to a number of decimal places).
abs(x)
Absolute value (no sign).
floor(x) / ceil(x)
Rounds down / up.
sqrt(x)
Square root.
pow(x, y)
x raised to the power of y.
min(...) / max(...)
Smallest / largest among the given values.
sum(...) / avg(...)
Sum / average of the given values.
These are exactly the functions the engine knows — the hint under the formula field in the Structure editor lists them. Function names are case-insensitive.

Examples

{Price} * {Qty} * (1 - {Discount})
round(({Grade1} + {Grade2} + {Grade3}) / 3, 1)
max({Target} - {Achieved}, 0)

When a formula shows empty

A formula prefers showing nothing over showing a misleading number. The cell stays empty when:

  • The formula cites a column name that does not exist (or was renamed).
  • A cross-table reference is broken — the linked record or target column was deleted.
  • The columns form a circular dependency.
  • The math is invalid: division by zero or a malformed expression.

Decimal places and display

In the Structure editor you define how many decimal places the result shows. The result is numeric and takes part in sums, charts, and the Analysis view like any other number column.

Handy companion: numeric cells offer Open calculator, a mini calculator that evaluates the exact same operators and functions for a one-off calculation, without creating a column.

Three more column types derive their value from the connections between tables. They are their own column types — you add them in the Structure editor like any column, not inside a formula:

Lookup
Pulls a field of the linked record, as-is (text, date, number…). You configure Via reference… (which linking column to follow) and Field to pull…. With multiple linked records it reads the first one.
Rollup
Aggregates a field across ALL the linked records: count, sum, average, minimum, or maximum. Non-numeric values are ignored instead of counting as 0.
Reverse links
Shows, on each row, the records of another table that reference it — the other direction of a Reference column. You configure the Source table and the Linked via column.
Lookup and Rollup can follow a Reverse links column too. That gives you a reverse rollup: on a Products table, a Rollup over the reverse links from Orders can sum everything ever ordered of each product — without Products holding any reference itself.
All derived columns — formula, lookup, rollup, and reverse links — are read-only and recalculate automatically after every edit. Because their value is derived, imports never write into them.