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

Решение проблем с формулами

Если формула считает не то, что вы ждали, пройдитесь по списку. Случаи отсортированы по частоте.

Чаще всего виновато пустое значение в расчёте.

  • Незаполненное поле в строке даёт пусто.
  • Любая арифметика с пустым значением даёт пусто.
  • Деление на 0 даёт пусто.

Что делать. Подставьте значение по умолчанию и защититесь от нуля:

coalesce([Сумма], 0) * 12
if([Цена] > 0, [Прибыль] / [Цена], 0)

Для сравнения нужны два знака: ==. Пишите [Категория] == "Аренда", а не [Категория] = "Аренда". Такое же сообщение будет на любой незнакомый символ, например на ? от тернарного оператора, которого нет. Вместо ? : используйте if.

«… — колонку пишите в квадратных скобках»

Заголовок раздела ««… — колонку пишите в квадратных скобках»»

Название поля написано без скобок. Было: Сумма * 12. Нужно: [Сумма] * 12.

Опечатка в имени функции или такой функции нет. Проверьте список функций. Русские имена тоже подходят: СУММ, ЕСЛИ, ОКРУГЛ. Своих функций добавить нельзя.

«Незакрытая строка» или «Незакрытая ссылка на поле»

Заголовок раздела ««Незакрытая строка» или «Незакрытая ссылка на поле»»

Не хватает закрывающей кавычки " или скобки ]:

if([Категория] == "Зарплата, [Сумма], 0) // ← нет закрывающей "

Правильно:

if([Категория] == "Зарплата", [Сумма], 0)

Это ошибка формулы виджета: поле стоит без SUM, AVG, COUNT. Виджет считает по многим строкам, поэтому поле должно быть внутри агрегата: SUM([Расходы.Сумма]). Подробнее в «Формулы в виджетах».

В одном агрегате поля двух таблиц. Разнесите их: SUM([Аренда.Платёж]) - SUM([Расходы.Сумма]).

Виджет считает не так, как формула на бумаге

Заголовок раздела «Виджет считает не так, как формула на бумаге»

Шаги конструктора показателя считаются по порядку, как на калькуляторе: «A + B × C» в шагах считается как (A + B) × C. В ручной формуле действует обычный порядок: сначала умножение. Если нужен другой порядок, переставьте шаги или поставьте скобки в формуле.

  • Финансовые функции (roi, cagr, irr…) возвращают долю: 0,24 = 24 %. Умножьте на 100.
  • Поле «Процент» хранит число процентов: 7 = 7 %. В финансовые функции передавайте [Ставка] / 100.
  • Формат виджета «%» показывает число как есть, без умножения.

В поле-формуле межстрочные функции видят строки в порядке добавления (новые сверху) и только загруженную порцию. Сортировка таблицы на них не влияет. Для динамики во времени используйте виджеты. Подробнее в «Межстрочные функции».

  • roi(x, 0): деление на нулевую стоимость. Защитите: if([Цена покупки] > 0, roi([Прибыль], [Цена покупки]), null).
  • cagr требует стартовую стоимость больше нуля и срок больше нуля.
  • irr нужно минимум два потока и хотя бы одно отрицательное значение (вложение).
  • Обращения к полю связанной строки через точку. Используйте «Поле из связанной таблицы».
  • Тернарного оператора ? :. Вместо него есть if.
  • Регулярных выражений. Вместо них есть contains.
  • Своих функций.
  • XIRR с датами потоков. Есть irr по равным периодам.

Если чего-то не хватает, напишите в поддержку: частые просьбы попадают в план.