Перейти к содержимому

Формулы в виджетах (Pro)

Formula Pro — продвинутый режим виджета, где его значение задаётся формулой, а не парой «поле + агрегат». Подходит для метрик, которые нельзя выразить одним полем: разница двух сумм, средний чек, условный итог.

Формула поляФормула виджета (Pro)
Где живётВнутри столбца таблицыВнутри настройки виджета
Как считаетсяНа каждой строкеПо всем строкам набора
Ссылка на полеПрямо: amountТолько внутри агрегата: sum([Таблица.Поле])

Формула поля даёт значение в каждой строке. Формула виджета сводит весь набор строк к одному результату (или к серии/категориям), поэтому каждое поле в ней обязано быть внутри агрегата.

Режим доступен на тарифе Pro (функция formula_pro). Если функции нет, переключатель Pro-режима недоступен — значение виджета задаётся обычными селекторами «поле + агрегат». Сменить тариф можно в разделе Тариф и оплата.

  1. Нажмите на виджет → шестерёнка («Настроить»).
  2. Включите переключатель Pro-режим.
  3. Вместо селекторов «поле + агрегат» появится редактор формулы.
  4. Введите формулу (см. правила ниже).
  5. Выберите формат результата: процент / деньги / число.

Редактор Pro-формул: слева формула и кнопки операторов, справа панель полей и функций, внизу проверка «Формула корректна» и выбор формата

Слева — поле для формулы и быстрые кнопки операторов. Справа — список доступных полей (с подсказкой ключа [Таблица.Поле]) и встроенных функций: их можно вставлять кликом. Внизу — индикатор корректности и выбор формата результата.

В формуле виджета поле нельзя использовать «голым» — оно должно быть обёрнуто в агрегат. Доступные агрегаты:

АгрегатЧто считает
sumСумму значений
avgСреднее
countКоличество значений
minМинимум
maxМаксимум
sumposСумму только положительных значений (приток)
sumnegСумму отрицательных по модулю (отток)

Поле вне агрегата даёт ошибку: «Поле вне агрегата — оберните в агрегат».

SUM([Транзакции.Сумма])

К виджету можно подключить несколько таблиц и ссылаться на их поля по синтаксису [Таблица.Поле]. Основная таблица подключена по умолчанию; остальные добавляются в настройке (список подключённых таблиц).

Важное ограничение: один агрегат относится к одной таблице. Смешивать поля разных таблиц внутри одного агрегата нельзя — разнесите их по отдельным агрегатам и комбинируйте арифметикой.

SUM([Аренда.Платёж]) - SUM([Расходы.Сумма])

Если смешать таблицы в одном агрегате, появится ошибка «Агрегат смешивает таблицы … — разнесите по отдельным агрегатам».

Что именно вводить, зависит от типа виджета.

ФормаЧто задаётеВиджеты
ЗначениеОдну формулу → одно числоKPI, Счётчик, Цель, Факт vs цель (bullet)
Два слотаДве формулы (две величины)Сравнение, ROI-карточка, Долговая нагрузка (слоты «Капитал» / «Долг»), Сводка cashflow (слоты «Поступления» / «Списания»)
Серия (формула × время)Формулу + ось времениЛинейный график, График с заливкой, Прогноз
Категории (формула × измерение)Формулу + измерениеСтолбчатый, Горизонтальные, Donut, Круговая, Разбивка, Treemap, Топ-N, Капитал, Валютная корзина, Waterfall

Денежные поля перед агрегированием автоматически конвертируются в валюту отображения профиля (по умолчанию ₽). Это значит, что суммы из разных валют складываются корректно — в одной валюте. Курсы подтягиваются автоматически, отдельно настраивать их не нужно.

Доступны те же встроенные функции, что и в формулах полей — см. Функции. Отличия Pro-режима:

  • Вне агрегата нельзя ссылаться на поля.
  • Кросс-строчные функции (lag, lead, running_sum, window_avg, rank) внутри агрегатов не доступны.

Цель: чистый поток средств (KPI). Настройки: виджет KPI, Pro-режим, формат «деньги».

SUM([Транзакции.Сумма])

Результат: сумма всех транзакций в валюте профиля.


Цель: разница доходов и расходов из двух таблиц. Настройки: KPI, подключены таблицы «Аренда» и «Расходы», формат «деньги».

SUM([Аренда.Платёж]) - SUM([Расходы.Сумма])

Результат: поступления минус списания.


Цель: средний чек. Настройки: KPI, таблица «Продажи», формат «деньги».

SUM([Продажи.Сумма]) / COUNT([Продажи.Сумма])

Результат: сумма продаж, делённая на их количество.


Цель: показать прибыль, но не уходить в минус. Настройки: KPI, таблица «Сделки», формат «деньги».

IF(SUM([Сделки.Прибыль]) > 0, SUM([Сделки.Прибыль]), 0)

Результат: прибыль, если она положительна, иначе 0.

Сообщения показываются прямо в редакторе формулы.

СообщениеПричинаКак починить
«Поле вне агрегата — оберните в агрегат»Поле использовано без агрегатаОберните в sum/avg/count/min/max
«Таблица «…» не подключена»Ссылка на таблицу, которой нет в подключённыхПодключите таблицу в настройке виджета
«Нет поля «…» в таблице «…»»Опечатка в имени поля или поле удаленоПроверьте имя поля в выбранной таблице
«Результат не число»Формула возвращает не числовое значениеПриведите выражение к числу (например, через агрегат или if)
«Агрегат смешивает таблицы …»В одном агрегате поля разных таблицРазнесите по отдельным агрегатам
  • Только тариф Pro (функция formula_pro).
  • Каждое поле — внутри агрегата.
  • Один агрегат — одна таблица.
  • Кросс-строчные функции в агрегатах недоступны.
  • Доступные агрегаты: sum, avg, count, min, max.