Purpose

Calculates new fields for every row. Formulas can use input columns, parameters from earlier blocks and fields already calculated above them in the list. The built-in ƒx wizard displays a function catalogue and examples.

Inputs and outputs

One in input; out contains the original and new fields. The row count does not change.

Parameters

ParameterSettings and valuesOptions and limits
fieldsFrom 1 to 100 fields: a unique name and an expression up to 2048 characters long.Count: 1–100
decimalThe decimal separator for numeric values in the input data.Options: ., ,
Default: .

Formula function catalogue

Function and argumentsPurposeExample
field(назва)The current row’s column value.field("Revenue")
param(назва)A parameter from an earlier block on the current branch only.param("Rate")
number(значення)Conversion to a number after the number-format block.number("12.5")
text(значення)Conversion of a value to text.text(125)
abs(число)The absolute value of a number.abs(-12)
round(число,знаків?)Round halves away from zero; precision from −15 to 15.round(12.345, 2)
min(числа*)The smallest of the supplied numbers.min(3, 8, 2)
max(числа*)The largest of the supplied numbers.max(3, 8, 2)
sum(числа*)The sum of arguments in the current row. To sum across rows, use grouping.sum(10, 20, 30)
average(числа*)The arithmetic mean of the arguments.average(10, 20)
ceil(число)Round towards positive infinity.ceil(-1.2)
floor(число)Round towards negative infinity.floor(-1.2)
trunc(число,знаків?)Discard the fractional part without rounding.trunc(12.349, 2)
roundup(число,знаків?)Round away from zero.roundup(12.341, 2)
rounddown(число,знаків?)Round towards zero.rounddown(-12.349, 2)
sqrt(число)The square root of a non-negative number.sqrt(144)
power(основа,степінь)Raise to a power (exponent from −1000 to 1000).power(2, 8)
mod(число,дільник)The remainder after division, with the divisor’s sign.mod(-7, 3)
sign(число)−1 for a negative number, 0 for zero, 1 for a positive number.sign(-12)
log(число,основа?)Logarithm; base 10 by default.log(1000, 10)
exp(число)The exponential e raised to the specified power.exp(1)
clamp(число,мінімум,максимум)Constrain a number to the specified interval.clamp(120, 0, 100)
percent(число,відсоток)The specified percentage of a number.percent(200, 15)
pi()The number π.pi()
concat(значення*)Concatenate text values.concat("Plan", "-", 2026)
upper(текст)Upper case.upper("hello")
lower(текст)Lower case.lower("HELLO")
title(текст)Capitalise every word.title("hello world")
trim(текст)Remove leading and trailing spaces.trim(" hello ")
length(текст)The number of Unicode characters.length("Київ")
left(текст,кількість)The first N characters.left("abcdef", 3)
right(текст,кількість)The last N characters.right("abcdef", 3)
mid(текст,позиція,кількість)A text fragment; the first position is 1.mid("abcdef", 2, 3)
replace(текст,старий,новий)Replace every occurrence of a substring.replace("a-b-c", "-", "/")
find(шукати,текст,позиція?)The case-sensitive substring position; 0 if not found.find("b", "abc")
search(шукати,текст,позиція?)The case-insensitive substring position; 0 if not found.search("B", "abc")
contains(текст,частина)Whether the text contains a substring.contains("abcdef", "cd")
starts_with(текст,початок)Whether the text starts with the specified substring.starts_with("ABC", "A")
ends_with(текст,кінець)Whether the text ends with the specified substring.ends_with("ABC", "C")
clean(текст)Remove control characters.clean("A\nB")
repeat(текст,кількість)Repeat text within a 32768-character limit.repeat("0", 3)
padleft(текст,довжина,символ?)Pad on the left with one character, a space by default.padleft("42", 5, "0")
padright(текст,довжина,символ?)Pad on the right with one character.padright("42", 5, "0")
transliterate(текст)Deterministic transliteration of Cyrillic/Greek text and removal of Latin diacritics.transliterate("Київ")
date(рік,місяць,день)Create a valid ISO calendar date.date(2026, 9, 27)
today()The current UTC date, fixed for the entire block.today()
now()The UTC time, fixed for the entire block.now()
datevalue(текст,формат?)Parse a date; ISO by default, or a strptime format.datevalue("27.09.2026", "%d.%m.%Y")
formatdate(дата,формат)Format a date; %Y — year, %m — month, %d — day.formatdate("2026-09-27", "%d.%m.%Y")
year(дата)The date’s year.year("2026-09-27")
month(дата)The date’s month from 1 to 12.month("2026-09-27")
day(дата)The day of the month.day("2026-09-27")
hour(датачас)The UTC hour from 0 to 23.hour("2026-09-27T12:30:00Z")
minute(датачас)The minute from 0 to 59.minute("2026-09-27T12:30:00Z")
second(датачас)The second from 0 to 59.second("2026-09-27T12:30:05Z")
weekday(дата)ISO weekday: Monday is 1, Sunday is 7.weekday("2026-09-27")
weeknum(дата)The ISO week number.weeknum("2026-09-27")
adddays(дата,днів)Add or subtract calendar days.adddays("2026-09-27", 7)
addmonths(дата,місяців)Shift by months; the day is limited to the end of the month.addmonths("2026-01-31", 1)
datediff(початок,кінець,одиниця?)Difference: days, months (complete months), years (complete years), hours, minutes, seconds.datediff("2026-01-01", "2026-02-01", "days")
eomonth(дата,зсув?)The last day of the current or shifted month.eomonth("2026-01-15", 1)
coalesce(значення*)The first value that is neither null nor empty.coalesce(None, "", 0, 5)
ifelse(умова,так,ні)A lazy condition: only the selected branch is evaluated.ifelse(10 > 5, "yes", "no")
iferror(вираз,заміна)Replace a calculation error; syntax errors and missing fields are not hidden.iferror(10 / 0, 0)
isblank(значення)Whether a value is null or empty text.isblank("")
isnumber(значення)Whether a value is a number rather than text or a Boolean.isnumber(12.5)
istext(значення)Whether a value is text.istext("12")
and_(умови*)All conditions are true; lazy evaluation.and_(1 > 0, 2 > 1)
or_(умови*)At least one condition is true; lazy evaluation.or_(False, True)
not_(умова)Logical negation.not_(False)

Step-by-step configuration

  1. Add a field and give it a new name.
  2. Insert a reference using field("Name") or use the field list. Specify a parameter with param("Name").
  3. Choose a function in the ƒx wizard, fill in its arguments and check the formula.
  4. Place dependent fields below the fields they use.
  5. Check zero, empty and invalid values in a simulation.

Rules and diagnostics

  • Existing columns are not overwritten; use “Set field values” to replace them.
  • Use a decimal point in formulas and put text in quotes. The +, −, *, / and % operations work with numbers; use concat to join text.
  • A formula cannot reference a field that has not yet been calculated. SOURCE_COLUMNS_MISSING and PARAMETER_UNKNOWN indicate unavailable names.
  • ifelse evaluates only the selected branch. For division, check for zero or use iferror for expected calculation errors.
  • Text results are limited to 32768 characters; split an overly complex formula into several fields. Current-time functions use one UTC instant for the entire block.

Configuration example

Create Amount = field("Price") * field("Quantity"), then AmountUAH = round(field("Amount") * param("Rate"), 2). For the average price, use ifelse(field("Quantity") == 0, 0, field("Amount") / field("Quantity")).

Formula editor

The editor highlights formulas, suggests functions, fields and parameters while typing, and shows the current argument hint. Open a function’s detailed description for argument explanations and an evaluated example. “Full screen” opens a large editor with field, parameter and function lists; “Collapse” returns to the panel. Multiline expressions and # or // line comments are supported. Ctrl/⌘ + / toggles comments on selected lines; comments do not count toward the 2,048-character expression limit.

Removing text from either end

removeleft(text, count) returns text without its first N characters; removeright(text, count) removes its last N characters. The remaining text is unchanged. For example, removeleft("UA-001", 3) yields 001, and removeright("report.csv", 4) yields report. This differs from left and right, which keep the corresponding fragment.