Обзор формул
Формула — это правило вычисления значения. В Invest формулы есть только в одной форме — как тип поля датасета («Формула»). Виджеты не пишут собственных формул в свободной форме — они считают агрегаты по существующим полям, включая формулы-поля.
Что формула умеет
- Брать значения из других полей строки.
- Применять арифметику и сравнения.
- Вызывать одну из 47 встроенных функций (математика, даты, финансы, агрегаты, кросс-строчные).
- Возвращать число, строку, булево или null.
Где результат используется
- В колонке таблицы датасета (видно сразу).
- В KPI / графиках / таблицах на дашборде — как любое другое поле.
- В фильтрах — формулы можно фильтровать так же, как обычные поля.
- В drill-down — формула показывается в превью строки.
Что формула НЕ умеет
- Принимать значения вне строки. Формула считается на каждой строке отдельно. Исключение — агрегатные функции (
sum,avg,count) и кросс-строчные (lag,lead,running_sum,window_avg,rank), которые работают на уровне виджета/таблицы. - Обращаться к полям связанной строки. Точечной нотации (
object.price) нет. См. «Связи в формулах». - Вызывать пользовательские функции. Своих функций добавить нельзя; только встроенные.
- Менять данные. Формула только читает и возвращает значение.
Минимальные примеры
amount * 12if(category == "Зарплата", amount, 0)roi(monthly_rent * 12 - annual_expenses, purchase_price)date_diff(today(), purchase_date, 'years')Когда формула, когда фильтр
| Задача | Решение |
|---|---|
| «Хочу колонку «Сумма зарплаты»». | Формула в датасете. |
| «Хочу видеть только зарплаты на дашборде». | Фильтр виджета. |
| «Хочу одну цифру: сумма зарплат за месяц». | Виджет KPI с агрегацией по фильтрованному датасету. |
| «Хочу каждой строке посчитать процент от месячного дохода». | Формула + кросс-строчная или агрегатная функция (но нужны границы). |
Подсказка-правило
Если значение нужно в строке — пишите формулу-поле. Если нужно на дашборде — настраивайте агрегат и фильтры виджета.