Формулы в виджетах
Значение виджета обычно собирают шагами в конструкторе: таблица, колонка, «Как» считать, какие записи учитывать. Это описано в «Как виджет считает значение». Любой расчёт из шагов можно показать формулой. Её можно посмотреть и, если нужно, написать вручную.
Ручная формула нужна, когда шагов не хватает: условие внутри суммы, произведение двух колонок в строке, сложная арифметика. Формулы в виджетах доступны на всех тарифах.
Как открыть формулу
Заголовок раздела «Как открыть формулу»- Откройте настройку виджета (меню виджета → «Настроить»). Вкладка «Данные», группа «Что считать».
- Под шагами нажмите «Показать формулу». Появится формула, которую собрали шаги. Её можно «Копировать».
- Нажмите «Изменить», и откроется редактор формулы.
- Напишите формулу. Подсказки появляются, когда вы печатаете
SUM,[или имя поля. Справа есть панель «Поля и функции»: клик вставляет поле или функцию. - В «Показать как» выберите, как показать результат: «Число», «₽» или «%».
- Нажмите «Сохранить» внизу окна.
Справа от формулы видно, как она читается: «Сначала…», «Потом…», «Итог» за текущий период. Ниже «Пример расчёта» на первых строках таблицы.
Если формулу можно разложить обратно на шаги, появится кнопка «Вернуться к шагам». Если нельзя, будет надпись «Эту формулу не разложить на шаги»: виджет будет считать по ручной формуле.
Отличие от поля-формулы
Заголовок раздела «Отличие от поля-формулы»| Поле-формула в таблице | Формула виджета | |
|---|---|---|
| Где живёт | В колонке таблицы | В настройке виджета |
| Как считается | Для каждой строки | По всем строкам за период |
| Ссылка на поле | [Сумма] |
[Таблица.Поле] внутри агрегата: SUM([Расходы.Сумма]) |
Правило: поле только внутри агрегата
Заголовок раздела «Правило: поле только внутри агрегата»Виджет сводит много строк к одному числу, поэтому каждое поле должно стоять внутри агрегата:
| Агрегат | Что считает |
|---|---|
SUM (СУММ) |
Сумму |
AVG (СРЗНАЧ) |
Среднее |
COUNT (СЧЁТ) |
Число непустых значений |
MIN / MAX (МИН / МАКС) |
Наименьшее / наибольшее |
SUMPOS |
Сумму только положительных (приход) |
SUMNEG |
Сумму отрицательных по модулю (расход) |
Поле вне агрегата даёт ошибку «Поле вне агрегата — оберните в агрегат: SUM([Таблица.Поле])».
Внутри агрегата можно считать по строке: SUM([Сделки.Количество] * [Сделки.Цена]) даст сумму произведений.
Несколько таблиц
Заголовок раздела «Несколько таблиц»В одной формуле можно ссылаться на разные таблицы: [Таблица.Поле]. Первая выбранная таблица становится основной, остальные подключаются, когда вы выбираете их в шагах или в панели полей.
В одном агрегате можно брать только одну таблицу. Чтобы совместить таблицы, разнесите их по разным агрегатам:
SUM([Аренда.Платёж]) - SUM([Расходы.Сумма])Если смешать таблицы в одном агрегате, появится ошибка «Агрегат смешивает таблицы … — разнесите по отдельным агрегатам».
Значение из другой таблицы (ВПР)
Заголовок раздела «Значение из другой таблицы (ВПР)»LOOKUP (ВПР) подставляет значение из таблицы-справочника по ключу. Так считают стоимость портфеля по текущим ценам:
SUM([Сделки.Количество] * LOOKUP([Сделки.Тикер], [Рыночные цены.Тикер], [Рыночные цены.Цена]))Без ручной формулы то же делает шаг «Значение из справочника». Подробнее в «Биржевые цены в формулах».
Формы по видам виджетов
Заголовок раздела «Формы по видам виджетов»| Форма | Что задаёте | Виджеты |
|---|---|---|
| Значение | Одну формулу, одно число | KPI, Счётчик, Цель, Факт vs цель |
| Два значения | Две формулы | Сравнение («Левая метрика» / «Правая метрика»), Изменение, % («Стало» / «Было»), Шкала («Целое или остаток» / «Часть»), Приход и расход («Приход» / «Расход») |
| Линия по времени | Формулу и ось дат | Линейный график, График с заливкой, Прогноз |
| Категории | Формулу и признак разбивки | Столбчатые, Кольцо, Круговая, Разбивка по категориям, Карта долей, Топ-N, Структура, Доли, Каскад |
У графиков ручная формула включается переключателем «Посчитать формулой»; рядом задаются «По какой дате (ось X)» и «Шаг по времени».
Денежные поля перед подсчётом приводятся к одной валюте, валюте отображения. Курсы Sumvest подтягивает сам.
Примеры
Заголовок раздела «Примеры»Только расходы из общей таблицы операций (KPI, «Показать как»: ₽):
SUMNEG([Операции.Сумма])Доходы минус расходы из двух таблиц (KPI, ₽):
SUM([Доходы.Сумма]) - SUM([Расходы.Сумма])Средний чек (KPI, ₽):
SUM([Продажи.Сумма]) / COUNT([Продажи.Сумма])Доля расходов на аренду (KPI, %):
SUM(IF([Расходы.Категория] == "Аренда", [Расходы.Сумма], 0)) / SUM([Расходы.Сумма]) * 100Формат «%» показывает число как есть, поэтому долю умножаем на 100.
Ошибки и как чинить
Заголовок раздела «Ошибки и как чинить»Сообщения видны прямо под формулой.
| Сообщение | Причина | Что сделать |
|---|---|---|
| «Поле вне агрегата — оберните в агрегат» | Поле стоит без агрегата | Оберните в SUM, AVG, COUNT… |
| «Таблица «…» не подключена — добавьте её» | Ссылка на таблицу, которой нет в виджете | Выберите таблицу в шаге или в панели полей |
| «Нет поля «…» в таблице «…»» | Опечатка или поле удалено | Проверьте название поля |
| «Агрегат смешивает таблицы …» | В одном агрегате поля разных таблиц | Разнесите по отдельным агрегатам |
| «Результат не число» | Формула вернула текст | Приведите к числу |
| «Для сравнения используйте «==», а не «=»» | Одиночный = |
Поставьте == |
Ограничения
Заголовок раздела «Ограничения»- Каждое поле стоит внутри агрегата.
- В одном агрегате одна таблица.
- Межстрочные функции внутри агрегатов не работают.