Назначение

Вычисляет новые поля для каждой строки. Формулы могут использовать входные столбцы, параметры предыдущих блоков и поля, уже рассчитанные выше в списке. Встроенный мастер ƒ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)

Пошаговая настройка

  1. Добавьте поле и задайте ему новое имя.
  2. Вставьте ссылку через field("Name") или список полей. Параметр укажите через param("Name").
  3. Выберите функцию в мастере ƒx, заполните аргументы и проверьте формулу.
  4. Размещайте зависимые поля ниже полей, которые они используют.
  5. Проверьте нулевые, пустые и некорректные значения в симуляции.

Правила и диагностика

  • Существующие столбцы не перезаписываются; для замены используйте «Задать значения полей».
  • В формулах используйте десятичную точку, а текст заключайте в кавычки. Операции +, −, *, / и % работают с числами; для соединения текста используйте 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, которые сохраняют соответствующий фрагмент.