Функции формул Baserow - справочник синтаксиса и примеров
Baserow предлагает встроенный редактор формул с автодополнением и десятками функций для расчётов, работы с текстом, датами и связанными таблицами. Статья собирает синтаксис для сложных типов полей, набор готовых шаблонов формул на все случаи и ответы на частые вопросы о массивах, длительностях и пустых значениях.
Обзор
Формулы Baserow работают с большинством типов полей, включая поля длительности и множественного выбора . Внутри одного выражения можно выполнять математические операции, обрабатывать текст, считать даты и строить логические сравнения.
Если нужно, чтобы записи получали имя автоматически (например, Invoice-001 или Sprint-Dec), превратите первичное поле
в поле формулы - тогда имя строки будет пересчитываться по заданному правилу при каждом изменении исходных данных.
Поиск функций
Редактор формул в Baserow показывает автодополнение и подсказки по функциям прямо во время ввода. Рядом с каждой подсказкой видны синтаксис и пример использования.
Чтобы найти нужную функцию:
- Создайте или откройте на редактирование поле формулы;
- Начните печатать в редакторе формул;
- Просмотрите список предложенных функций с описаниями;
- Кликните по функции, чтобы увидеть её синтаксис и пример.
Работа со сложными типами полей
Формулы по-разному обращаются к простым и составным типам полей. Ниже - три случая, которые чаще всего вызывают вопросы.
Множественный выбор
Формулы умеют работать с полями множественного выбора : проверять, какие варианты отмечены в строке, и выполнять операции над этим набором значений.

Связь с таблицей
Для полей связи с таблицей
используйте функцию lookup(), чтобы получить значения полей из связанных строк, а затем примените агрегирующую функцию вроде sum(), count() или join().
Подстановка и свод
Поля подстановки и свода возвращают массивы значений, а не одно число или строку. Прежде чем использовать их в условиях или сравнениях, преобразуйте массив в одно значение через агрегирующую функцию.
Типовые формулы
Ниже - шаблоны формул, которые закрывают большинство повседневных задач. Замените названия полей в примерах на поля своей таблицы.
Вычисления
Рассчитать итоговую сумму:
[Quantity] * [Unit Price]Применить процентную скидку:
[Price] * (1 - [Discount Percent] / 100)Округлить до двух знаков после запятой:
round([Amount], 2)Найти большее из двух значений:
greatest([Value A], [Value B])Работа с текстом
Объединить имя и фамилию:
concat([First Name], ' ', [Last Name])Привести текст к верхнему регистру:
upper([Product Code])Извлечь первые 10 символов:
left([Description], 10)Проверить, содержит ли текст слово:
contains([Notes], 'urgent')Дата и время
Посчитать разницу в днях между датами:
date_diff('day', [Start Date], [End Date])Отформатировать дату в текст:
datetime_format([Created], 'YYYY-MM-DD')Проверить, что дата уже прошла:
[Due Date] < today()Получить год из даты:
year([Date Field])Условная логика
Показать разный текст в зависимости от статуса:
if([Status] = 'Complete', 'Done', 'Pending')Подставить значение по умолчанию, если поле пустое:
when_empty([Notes], 'No notes added')Объединить несколько условий:
if(and([Quantity] > 0, [Price] > 100), 'In Stock - Premium', 'Standard')Работа со связанными таблицами
Просуммировать значения из связанных строк:
sum(lookup('Orders', 'Total'))Посчитать количество связанных элементов:
count([Related Items])Объединить текст из нескольких строк:
join(lookup('Projects', 'Name'), ', ')Отфильтровать и просуммировать:
sum(filter(lookup('Items', 'Price'), lookup('Items', 'Status') = 'Active'))Интерактивные кнопки
Создать кликабельную кнопку:
button('https://example.com/' + [ID], 'View Details')Сделать ссылку на email:
link('mailto:' + [Email])
Часто задаваемые вопросы
Почему формула не работает с полем подстановки или связи с таблицей? Поля подстановки и связи с таблицей содержат массивы (несколько значений), а не одно значение. Большинство функций ожидают на входе одно значение. Используйте агрегирующие функции вроде sum(), join(), count() или avg(), чтобы превратить массив в одно значение. Пример проблемы: isblank([Organization]) не сработает, если Organization - поле связи. Решение: isblank(join([Organization], '')) сначала превращает массив в текст.
Можно ли использовать формулы с полями длительности? Да. Поля длительности поддерживают математические операции напрямую - их можно складывать, вычитать, умножать и делить так же, как обычные числа.
Как проверить, что дата приходится на конкретный день недели? Используйте datetime_format() с кодом формата D, где воскресенье = 1, понедельник = 2 и так далее: datetime_format([Date Field], 'D') = '1' вернёт истину для воскресенья. Дополнительные коды форматирования дат смотрите в документации PostgreSQL по форматированию
.
Обновляются ли функции today() и now() автоматически? Да, обе функции обновляются примерно раз в 10 минут. Используйте today(), если нужна только дата, и now(), когда важны и дата, и время. Обратите внимание: интервал в 10 минут - ориентировочный, а не гарантированный; если рабочее пространство долго не открывали, обновление может произойти раз в 60 минут.
Как обработать пустые или null-значения в формулах? Используйте when_empty(), чтобы задать резервное значение, или isblank(), чтобы проверить, что поле пустое: when_empty([Optional Field], 'Default Value') или if(isblank([Name]), 'No name provided', [Name]).
Можно ли использовать регулярные выражения в формулах? Да, функция regex_replace() находит и заменяет текст по шаблону: regex_replace([Phone], '[^0-9]', '') удаляет все нецифровые символы из номера телефона.
Что дальше
Если вы ещё не читали общее введение в формулы, начните с «Обзора поля формулы» . Чтобы глубже разобраться со связанными типами полей, которые часто применяются вместе с формулами, изучите «Связь с таблицей» , «Подстановку» , «Свод» и «Часовые пояса» для дат в разных часовых поясах. Затем переходите к разделу «Представления» , чтобы увидеть, как вычисляемые формулой значения используются в фильтрах и сортировке.