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

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

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

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

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

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

  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)
«Агрегат смешивает таблицы …» В одном агрегате поля разных таблиц Разнесите по отдельным агрегатам
  • Каждое поле — внутри агрегата.
  • Один агрегат — одна таблица.
  • Кросс-строчные функции в агрегатах недоступны.
  • Доступные агрегаты: sum, avg, count, min, max.