Назначение
Вычисляет новые поля для каждой строки. Формулы могут использовать входные столбцы, параметры предыдущих блоков и поля, уже рассчитанные выше в списке. Встроенный мастер ƒx показывает каталог функций и примеры.
Входы и выходы
Один вход in; out содержит исходные и новые поля. Количество строк не меняется.
Параметры
| Параметр | Настройки и значения | Варианты и ограничения |
|---|---|---|
fields | От 1 до 100 полей: уникальное имя и выражение длиной до 2048 символов. | Количество: 1–100 |
decimal | Десятичный разделитель числовых значений во входных данных. | Варианты: ., ,По умолчанию: . |
Каталог функций формул
| Функция и аргументы | Назначение | Пример |
|---|---|---|
field(назва) | Значение столбца текущей строки. | field("Revenue") |
param(назва) | Параметр предыдущего блока только в текущей ветке. | param("Rate") |
number(значення) | Преобразование в число после блока форматов чисел. | number("12.5") |
text(значення) | Преобразование значения в текст. | text(125) |
abs(число) | Абсолютная величина числа. | abs(-12) |
round(число,знаків?) | Округление половин от нуля; точность от −15 до 15. | round(12.345, 2) |
min(числа*) | Наименьшее из переданных чисел. | min(3, 8, 2) |
max(числа*) | Наибольшее из переданных чисел. | max(3, 8, 2) |
sum(числа*) | Сумма аргументов текущей строки. Для суммы по строкам используйте группировку. | sum(10, 20, 30) |
average(числа*) | Среднее арифметическое аргументов. | average(10, 20) |
ceil(число) | Округление к положительной бесконечности. | ceil(-1.2) |
floor(число) | Округление к отрицательной бесконечности. | floor(-1.2) |
trunc(число,знаків?) | Отбрасывание дробной части без округления. | trunc(12.349, 2) |
roundup(число,знаків?) | Округление от нуля. | roundup(12.341, 2) |
rounddown(число,знаків?) | Округление к нулю. | rounddown(-12.349, 2) |
sqrt(число) | Квадратный корень неотрицательного числа. | sqrt(144) |
power(основа,степінь) | Возведение в степень (показатель от −1000 до 1000). | power(2, 8) |
mod(число,дільник) | Остаток от деления со знаком делителя. | mod(-7, 3) |
sign(число) | −1 для отрицательного числа, 0 для нуля, 1 для положительного. | sign(-12) |
log(число,основа?) | Логарифм; по умолчанию по основанию 10. | log(1000, 10) |
exp(число) | Число e в указанной степени. | exp(1) |
clamp(число,мінімум,максимум) | Ограничение числа заданным интервалом. | clamp(120, 0, 100) |
percent(число,відсоток) | Указанный процент числа. | percent(200, 15) |
pi() | Число π. | pi() |
concat(значення*) | Соединение текстовых значений. | concat("Plan", "-", 2026) |
upper(текст) | Верхний регистр. | upper("hello") |
lower(текст) | Нижний регистр. | lower("HELLO") |
title(текст) | Каждое слово с заглавной буквы. | title("hello world") |
trim(текст) | Удаление пробелов в начале и конце. | trim(" hello ") |
length(текст) | Количество символов Unicode. | length("Київ") |
left(текст,кількість) | Первые N символов. | left("abcdef", 3) |
right(текст,кількість) | Последние N символов. | right("abcdef", 3) |
mid(текст,позиція,кількість) | Фрагмент текста; первая позиция — 1. | mid("abcdef", 2, 3) |
replace(текст,старий,новий) | Замена всех вхождений подстроки. | replace("a-b-c", "-", "/") |
find(шукати,текст,позиція?) | Позиция подстроки с учётом регистра; 0, если не найдена. | find("b", "abc") |
search(шукати,текст,позиція?) | Позиция подстроки без учёта регистра; 0, если не найдена. | search("B", "abc") |
contains(текст,частина) | Содержит ли текст подстроку. | contains("abcdef", "cd") |
starts_with(текст,початок) | Начинается ли текст с указанной подстроки. | starts_with("ABC", "A") |
ends_with(текст,кінець) | Заканчивается ли текст указанной подстрокой. | ends_with("ABC", "C") |
clean(текст) | Удаление управляющих символов. | clean("A\nB") |
repeat(текст,кількість) | Повторение текста в пределах 32768 символов. | repeat("0", 3) |
padleft(текст,довжина,символ?) | Дополнение слева одним символом, по умолчанию пробелом. | padleft("42", 5, "0") |
padright(текст,довжина,символ?) | Дополнение справа одним символом. | padright("42", 5, "0") |
transliterate(текст) | Однозначная транслитерация кириллицы и греческого текста и удаление диакритики латиницы. | transliterate("Київ") |
date(рік,місяць,день) | Создание корректной календарной даты ISO. | date(2026, 9, 27) |
today() | Текущая дата UTC, фиксированная для всего блока. | today() |
now() | Время UTC, фиксированное для всего блока. | now() |
datevalue(текст,формат?) | Разбор даты; по умолчанию ISO или формат strptime. | datevalue("27.09.2026", "%d.%m.%Y") |
formatdate(дата,формат) | Форматирование даты; %Y — год, %m — месяц, %d — день. | formatdate("2026-09-27", "%d.%m.%Y") |
year(дата) | Год даты. | year("2026-09-27") |
month(дата) | Месяц даты от 1 до 12. | month("2026-09-27") |
day(дата) | День месяца. | day("2026-09-27") |
hour(датачас) | Час UTC от 0 до 23. | hour("2026-09-27T12:30:00Z") |
minute(датачас) | Минута от 0 до 59. | minute("2026-09-27T12:30:00Z") |
second(датачас) | Секунда от 0 до 59. | second("2026-09-27T12:30:05Z") |
weekday(дата) | День недели ISO: понедельник — 1, воскресенье — 7. | weekday("2026-09-27") |
weeknum(дата) | Номер недели ISO. | weeknum("2026-09-27") |
adddays(дата,днів) | Прибавление или вычитание календарных дней. | adddays("2026-09-27", 7) |
addmonths(дата,місяців) | Сдвиг по месяцам; день ограничивается концом месяца. | addmonths("2026-01-31", 1) |
datediff(початок,кінець,одиниця?) | Разность: days, months (полные месяцы), years (полные годы), hours, minutes, seconds. | datediff("2026-01-01", "2026-02-01", "days") |
eomonth(дата,зсув?) | Последний день текущего или сдвинутого месяца. | eomonth("2026-01-15", 1) |
coalesce(значення*) | Первое значение, не равное null и не пустое. | coalesce(None, "", 0, 5) |
ifelse(умова,так,ні) | Ленивое условие: вычисляется только выбранная ветка. | ifelse(10 > 5, "yes", "no") |
iferror(вираз,заміна) | Замена ошибки вычисления; синтаксические ошибки и отсутствующие поля не скрываются. | iferror(10 / 0, 0) |
isblank(значення) | Равно ли значение null или пустому тексту. | isblank("") |
isnumber(значення) | Является ли значение числом, а не текстом или логическим значением. | isnumber(12.5) |
istext(значення) | Является ли значение текстом. | istext("12") |
and_(умови*) | Все условия истинны; ленивое вычисление. | and_(1 > 0, 2 > 1) |
or_(умови*) | Хотя бы одно условие истинно; ленивое вычисление. | or_(False, True) |
not_(умова) | Логическое отрицание. | not_(False) |
Пошаговая настройка
- Добавьте поле и задайте ему новое имя.
- Вставьте ссылку через field("Name") или список полей. Параметр укажите через param("Name").
- Выберите функцию в мастере ƒx, заполните аргументы и проверьте формулу.
- Размещайте зависимые поля ниже полей, которые они используют.
- Проверьте нулевые, пустые и некорректные значения в симуляции.
Правила и диагностика
- Существующие столбцы не перезаписываются; для замены используйте «Задать значения полей».
- В формулах используйте десятичную точку, а текст заключайте в кавычки. Операции +, −, *, / и % работают с числами; для соединения текста используйте concat.
- Формула не может ссылаться на ещё не рассчитанное поле. SOURCE_COLUMNS_MISSING и PARAMETER_UNKNOWN указывают на недоступные имена.
- ifelse вычисляет только выбранную ветку. Перед делением проверяйте ноль или используйте iferror для ожидаемых ошибок вычисления.
- Текстовый результат ограничен 32768 символами; слишком сложную формулу разбивайте на несколько полей. Функции текущего времени используют один момент UTC для всего блока.
Пример настройки
Создайте Amount = field("Price") * field("Quantity"), затем AmountUAH = round(field("Amount") * param("Rate"), 2). Для средней цены используйте ifelse(field("Quantity") == 0, 0, field("Amount") / field("Quantity")).
Редактор формул
Редактор подсвечивает формулы, предлагает функции, поля и параметры при вводе и показывает подсказку текущего аргумента. Откройте подробное описание функции, чтобы увидеть пояснения аргументов и рассчитанный пример. «На весь экран» открывает большой редактор со списками полей, параметров и функций; «Свернуть» возвращает к панели. Поддерживаются многострочные выражения и построчные комментарии # или // . Ctrl/⌘ + / переключает комментарии выбранных строк; комментарии не учитываются в ограничении выражения на 2048 символов.
Удаление текста с начала или конца
removeleft(text, count) возвращает текст без первых N символов; removeright(text, count) удаляет последние N символов. Остальной текст не меняется. Например, removeleft("UA-001", 3) даёт 001, а removeright("report.csv", 4) даёт report. Это отличается от left и right, которые сохраняют соответствующий фрагмент.