Skip to main content

Formula

Configuration reference: Fórmula

Overview​

The Formula component calculates values automatically based on other columns in the same record or data from other features. The result is read-only — users cannot edit formula fields directly.

Writing formulas​

Formula types​

TypeDescriptionExample
SUMAdd values from selected columnsPrice + Tax + Shipping
SUBTRACTSubtract column valuesBudget - Spent
MULTIPLYMultiply column valuesQuantity × Unit Price
DIVIDEDivide column valuesTotal / Count
CONCATENATECombine text from columns with a separator"FirstName LastName"
SUMIFSum values from a feature with conditionsSum order totals where status = "paid"
COUNTIFCount records in a feature matching conditionsCount tasks where status = "complete"
XLOOKUPLook up a value from another featureFind a client's email by their ID
EXPRESSIONFree-form dynamic expressionComplex calculations with custom logic
ARITHMETIC EXPRESSIONVisual builder with parentheses and operators(Price × Quantity) - Discount

Cross-feature formulas​

SUMIF, COUNTIF, and XLOOKUP can reference data in other features:

  • SUMIF — Select a source feature, the column to sum, and define filter conditions (e.g., sum all invoice amounts where clientId matches the current record's ID).
  • COUNTIF — Same as SUMIF but counts matching records instead of summing values.
  • XLOOKUP — Specify a source feature, a lookup column (to match against), and a return column (the value to retrieve).

Zones on the map​

ZONE(@local, "Zonas") returns the name of the zone the point in the @local column falls in. The first argument is a Location column (a [lat, lng] list or the text "lat,lng" also work); the second is the name of the zones table, which must have a Zone column. The name comes from that table's title column (the first text column, for example «Nome»).

  • When the point falls in more than one zone, the zone created first wins.
  • ZONES(@local, "Zonas") returns the names of every zone containing the point, separated by commas, in the same order.
  • When the point falls in no zone, or the location is empty, the result is empty text: a record that leaves a zone loses its name.
  • The border counts as inside the zone.
  • If the table does not exist, or has no Zone column, the cell shows the error.

The value recalculates when the record's location changes and when a zone is drawn, changed or deleted. Filter or group by the formula column as by any text.

CONCATENATE options​

SettingDescription
Campos para concatenarCheckbox list of the other columns on the feature. Check a column to include it in the result.
Ordem dos camposOnce two or more columns are selected, reorder them with the up/down arrows — this is the order they appear in the concatenated text.
Máx. (per field)Optional character limit for that field's contribution. Leave empty for no limit. When the field's value is longer than the limit, it is cut to that length and suffixed with ….
Separador de textoText inserted between each field's value. Defaults to ", " if left empty.

The limit is applied per field, not to the final concatenated string — each column is truncated independently before being joined with the separator.

For a linked_select field, the limit applies to the resolved label (the display value shown for the link), not to the underlying row ID.

Truncation happens on the calculated value that gets stored: table, search, and export all see the cut text, with … appended. The source column itself is never modified.

Display options​

SettingDescription
Render as componentDisplay the formula result as another component type (e.g., render as a Select badge or Linked Select link)
Render component configConfiguration for the display component

Formula history​

OutDo keeps the last 3 formula configurations as history, allowing you to roll back to a previous formula if needed.

In all views, formula fields display their calculated result as read-only text (or as the configured render component).

Errors​

A formula that cannot compute stores the error instead of a value: the field is empty and shows a red # with the reason in the tooltip (for example «Divisão por zero» or «A coluna @preco não existe nesta tabela»). The same applies to list cards and form side panels. In the form the reason is spelled out and, for whoever can design the workspace, an Editar coluna… link opens the column settings. Once the cause is fixed (the data changes or the formula is edited), the value comes back on the next recalculation. A formula with no result keeps the previous value.

A formula that reads another formula of the same row that has an error does not compute: it carries the error «A fórmula depende de «coluna», que tem um erro» instead of counting the missing value as 0.

Texto quando sem valor applies only to empty cells, never to an error. An empty column counts as 0 inside a calculation.

The builder checks the formula before saving: unknown functions, a wrong number of arguments, unclosed parentheses or quotes, columns and tables that do not exist and cycles between formulas block Guardar (the first blocking problem is the one the button reports). All problems are listed in a banner inside the Cálculo card, in the error colour when any blocks and the warning colour otherwise; references to columns or tables that no longer exist turn red under Depende de. If a column the formula uses is deleted later, the cells show the configuration notice until the formula is fixed.

Errors are system metadata (__errors): they never appear in the API, exports or the AI. Zeros that a failing formula stored before this release are only corrected on the row's next recalculation or on Recalcular.