Формулы: как настроить расчеты в карточках
Формулы помогают считать значения по данным карточки. Например, в карточке рекламной кампании можно записывать заявки с сайта и из чата, а общий итог получать в поле «Всего заявок». Если с сайта пришло 12 заявок, а из чата — 8, поле покажет 20. Когда вы обновите одно из чисел, итог пересчитается.

Результатом формулы может быть число, текст, дата или ответ «Да» или «Нет». Он отображается среди остальных полей карточки, а само поле с формулой также можно вывести на доску, в список или на диаграмму Ганта.
Как добавить поле с формулой
Сначала добавьте нужные поля в тип карточки, затем задайте выражение в самой карточке.
- Откройте настройки компании и перейдите в «Типы карточек».
- Выберите тип карточки, в котором хотите считать заявки.
- Добавьте поле типа «Формула».

Подробнее о создании полей и настройке карточек рассказали в отдельных статьях. Пользовательские поля, Типы карточек.
Как пользоваться редактором
Короткие выражения можно добавить напрямую из всплывающего окна, но для работы с длинными выражениями лучше использовать редактор формул. Чтобы открыть его, нажмите «Развернуть редактор».

В развернутом окне доступны три вкладки.
- «Поля» — данные карточки, пользовательские поля, родительская карточка и подзадачи.
- «Функции» — действия для работы с числами, текстом, датами и условиями. У функций есть описания и примеры.
- «Операторы» — знаки для вычислений и сравнений, а также заготовки для формул из нескольких шагов.

Как составить формулу с помощью ИИ
Если у вас подключения лицензия Shtab AI, то вы сможете сгенерировать формулу с помощью Shtab AI. Для этого в окне с формулой нажмите «Сгенерировать».

Сгенерированное выражение подставится в редактор. Проверьте, что в карточке с 12 заявками с сайта и 8 из чата получается 20, затем нажмите «Сохранить». Если результат отличается от ожидаемого, уточните запрос или поправьте выражение вручную.
Как записывать формулы
| Что нужно записать | Пример |
|---|---|
| Значение поля | {Заявки с сайта} |
| Число | 20 или 1.5. Дробная часть отделяется точкой |
| Текст | "Цель достигнута" в двойных кавычках |
| Сложение и вычитание | {Заявки с сайта} + {Заявки с чата}, 20 - {Заявки с сайта} |
| Умножение и деление | {Заявки с сайта} * 2, {Заявки с чата} / 2 |
| Действие, которое нужно выполнить первым | ({Заявки с сайта} + {Заявки с чата}) / 2 |
| Соединение текста | "Кампания " & {Название} |
| Логическое значение | ИСТИНА или ЛОЖЬ. Также подходят TRUE и FALSE |
Для сравнений используются = — равно, <> — не равно, > — больше, < — меньше, >= — больше или равно, <= — меньше или равно.
Функция выполняет готовое действие. Значения для неё указываются в круглых скобках. Например, ОКРУГЛ(12.345; 2) округлит число до двух знаков и вернёт 12.35.
Значения в скобках можно разделять точкой с запятой или запятой. Для дробной части числа используйте точку. У функций есть русские и английские названия. Например, СУММ и SUM выполняют одно и то же действие. Регистр букв не влияет на результат.
Как добавить условие
Допустим, цель кампании — получить хотя бы 20 заявок. Добавьте отдельное поле типа «Формула», например «Статус цели».
ЕСЛИ({Заявки с сайта} + {Заявки с чата} >= 20; "Цель достигнута"; "Ниже цели")Первое значение в скобках — условие. Второе — результат, если условие выполняется. Третье — результат для остальных случаев.
При 12 заявках с сайта и 8 из чата поле покажет «Цель достигнута». Если из чата пришло 5 заявок, общий итог составит 17 и поле покажет «Ниже цели».
Как проверить несколько условий
Допустим, вы хотите увидеть, поступили ли заявки из обоих каналов. Добавьте поле типа «Формула» и назовите его «Проверка заявок».
ЕСЛИ(И({Заявки с сайта} > 0; {Заявки с чата} > 0); "Оба канала"; "Проверьте каналы")Функция И проверяет, что в каждом канале есть хотя бы одна заявка. Если оба условия выполняются, поле покажет «Оба канала». В остальных случаях появится «Проверьте каналы».

Как оформить результат
Добавить подпись к числу
Если итог нужно показать с пояснением, соедините текст и результат расчёта через &.
"Всего заявок — " & ({Заявки с сайта} + {Заявки с чата})При 12 заявках с сайта и 8 из чата получится Всего заявок — 20. Для дальнейших расчётов используйте числовое поле «Всего заявок» из первого примера.
Показать долю заявок с сайта
Разделите число заявок с сайта на их общее количество и примените формат "0%". Проверка ЕСЛИ нужна на случай, когда заявок пока нет.
ЕСЛИ(
{Заявки с сайта} + {Заявки с чата} = 0;
"Нет заявок";
ТЕКСТ({Заявки с сайта} / ({Заявки с сайта} + {Заявки с чата}); "0%")
)Если с сайта пришло 12 заявок из 20, поле покажет 60%. Формат "0%" сам переводит долю в проценты и добавляет знак %.
Как работать с датами и сроками
Посчитать дни до дедлайна
РАЗНДАТ(СЕГОДНЯ(); {Дедлайн})СЕГОДНЯ() возвращает сегодняшнюю дату. РАЗНДАТ считает разницу от первой даты до второй. По умолчанию результат выражается в календарных днях.
Если дедлайн через пять дней, формула покажет 5. Если он прошёл пять дней назад, получится -5. При пустом дедлайне поле покажет прочерк.
Показать состояние срока
ЕСЛИ({Завершена}; "Завершена";
ЕСЛИ(ЕПУСТО({Дедлайн}); "Без срока";
ЕСЛИ({Дедлайн} < СЕГОДНЯ(); "Просрочено"; "В срок")))Формула проверяет, завершена ли карточка и указан ли дедлайн. Если карточка открыта и у неё есть дедлайн, формула сравнивает его с сегодняшней датой. Карточка с дедлайном на сегодня получит результат «В срок».

Рассчитать дату через неделю
ДАТАДОБАВИТЬ({Дата начала}; 1; "weeks")Если дата начала — 10 ноября, поле с формулой покажет 17 ноября. Чтобы сдвинуть дату на неделю назад, передайте -1. Для дней используется "days", для месяцев — "months", для часов — "hours".
Чтобы посчитать рабочие дни между датами, используйте ЧИСТРАБДНИ({Дата начала}; {Дедлайн}). Эта функция считает дни с понедельника по пятницу и включает обе даты, если они приходятся на будни. Праздники, отпуска и индивидуальные графики в расчёте не учитываются.
Как использовать данные родителя и подзадач
Взять поле родительской карточки
Чтобы вывести в подзадаче дедлайн родительской карточки, введите выражение.
{Родитель.Дедлайн}До точки указывается связанная карточка, после точки — ее поле. Если у карточки нет родителя или у родителя не задан дедлайн, результат будет пустым.
Сложить заявки за неделю
В родительской карточке можно вести кампанию за неделю, а в подзадачах — записывать заявки за каждый день. Добавьте поля «Заявки с сайта» и «Заявки из чата» в карточки дней. В родительской карточке создайте поле «Заявки за неделю» с формулой.
СУММ({Подзадачи.Заявки с сайта}) + СУММ({Подзадачи.Заявки из чата})Первая СУММ складывает заявки с сайта по всем подзадачам, вторая — заявки из чата. Затем формула складывает итоги двух каналов.
| Подзадача | Заявки с сайта | Заявки из чата | Всего за день |
|---|---|---|---|
| Понедельник | 12 | 8 | 20 |
| Вторник | 6 | 6 | 12 |
| Среда | 5 | 3 | 8 |
В этом примере поле «Заявки за неделю» покажет 40.

Посчитать подзадачи или собрать их названия
| Что нужно получить | Формула | Пример результата |
|---|---|---|
| Количество подзадач | СЧЁТ({Подзадачи}) | 3 |
| Количество подзадач с заполненным дедлайном | СЧЁТ({Подзадачи.Дедлайн}) | 2, если срок указан у двух карточек |
| Названия подзадач через запятую | ОБЪЕДИНИТЬ({Подзадачи.Название}; ", ") | Понедельник, Вторник, Среда |
Как составить формулу из нескольких шагов
Если нужно посчитать заявки только по незавершённым подзадачам, пройдите по карточкам с помощью цикла и проверяйте состояние каждой. Для такого расчёта можно создать отдельное поле «Заявки по открытым подзадачам».
ПЕРЕМЕННАЯ итог = 0
ЦИКЛ подзадача В {Подзадачи}
ЕСЛИ НЕ({подзадача.Завершена}) ТО
итог = итог + {подзадача.Заявки с сайта} + {подзадача.Заявки из чата}
КОНЕЦ
КОНЕЦ
итогПЕРЕМЕННАЯ задаёт начальное значение итога. ЦИКЛ по очереди берёт каждую подзадачу. Если она открыта, её заявки добавляются к итогу. В последней строке формула выводит накопленное число.
Если завершить карточку «Среда» с 8 заявками, в результате останутся понедельник и вторник. Формула покажет 32.

Внутри цикла можно читать поля текущей подзадачи через {подзадача.Название поля}. Цикл может перебирать подзадачи одного уровня. Вложенные циклы не поддерживаются.
Какие поля можно использовать в формулах
Поля можно выбрать на вкладке «Поля» или из подсказок при вводе {.
| Данные | Примеры ссылок |
|---|---|
| Название и расположение карточки | {Название}, {ID}, {Проект}, {Группа} |
| Состояние карточки | {Статус}, {Приоритет}, {Тип}, {Завершена} |
| Участники и метки | {Исполнители}, {Ответственные}, {Автор}, {Теги} |
| Даты | {Дата начала}, {Дедлайн}, {Дата создания}, {Дата завершения} |
| Счётчики | {Чеклист всего}, {Чеклист выполнено}, {Комментарии}, {Файлы} |
| Пользовательские поля | {Заявки с сайта}, {Заявки из чата} и другие поля вашей компании |
Названия в подсказках могут отличаться от подписей в карточке. Например, в формуле для меток используется {Теги}. Исполнителей и другие списки можно посчитать через СЧЁТ или собрать в текст через ОБЪЕДИНИТЬ.
Как использовать результат другой формулы
Если поле «Всего заявок» уже считает сумму, другое поле может использовать готовый итог. Например, чтобы узнать, сколько заявок осталось до цели в 25, введите формулу.
МАКС(25 - {Всего заявок}; 0)При 20 заявках результат будет 5. Когда заявок станет 25 или больше, формула покажет 0.
Задавайте зависимости в одном направлении. В этом примере «Осталось до цели» использует «Всего заявок». Если «Всего заявок» тоже начнёт ссылаться на «Осталось до цели», возникнет взаимная ссылка.
Справочник функций
У каждой из 42 функций есть русское и английское название. В таблицах указаны допустимые названия и порядок значений в скобках. Квадратные скобки обозначают необязательное значение, а многоточие — возможность передать несколько значений. В саму формулу эти обозначения вводить не нужно.
Числа
| Функция | Другие названия | Что делает |
|---|---|---|
ОКРУГЛ(число; [знаков]) | ROUND | Округляет до указанного числа знаков. По умолчанию — до целого |
ОКРВНИЗ(число) | FLOOR, ЦЕЛОЕ, INT | Округляет вниз до целого |
ОКРВВЕРХ(число) | CEILING | Округляет вверх до целого |
МОДУЛЬ(число) | ABS | Возвращает абсолютное значение |
ОСТАТ(число; делитель) | MOD | Возвращает остаток от деления |
СТЕПЕНЬ(число; степень) | POWER | Возводит число в степень |
КОРЕНЬ(число) | SQRT | Вычисляет квадратный корень |
СУММ(значение; …) | SUM | Складывает числа или значения списка |
СРЗНАЧ(значение; …) | AVERAGE | Вычисляет среднее арифметическое |
МИН(значение; …) | MIN | Выбирает наименьшее значение |
МАКС(значение; …) | MAX | Выбирает наибольшее значение |
Текст и списки
| Функция | Другие названия | Что делает |
|---|---|---|
СЦЕПИТЬ(значение; …) | CONCAT, СЦЕП, CONCATENATE | Соединяет значения в текст |
ПРОПИСН(текст) | UPPER | Переводит текст в заглавные буквы |
СТРОЧН(текст) | LOWER | Переводит текст в строчные буквы |
ДЛСТР(текст) | LEN | Считает символы |
СЖПРОБЕЛЫ(текст) | TRIM | Убирает лишние пробелы |
ЛЕВСИМВ(текст; количество) | LEFT | Возвращает указанное число символов с начала |
ПРАВСИМВ(текст; количество) | RIGHT | Возвращает указанное число символов с конца |
ПСТР(текст; начало; количество) | MID | Возвращает фрагмент текста с указанной позиции |
ПОДСТАВИТЬ(текст; что; чем) | SUBSTITUTE, REPLACE | Заменяет все совпадения в тексте |
НАЙТИ(что; текст) | FIND | Возвращает позицию первого совпадения или 0 |
СОДЕРЖИТ(текст; что) | CONTAINS | Проверяет, есть ли указанный текст в строке, без учёта регистра |
ТЕКСТ(значение; [формат]) | TEXT, FORMAT | Преобразует значение в текст с заданным форматом |
ЗНАЧЕН(текст) | VALUE | Преобразует текст в число |
ОБЪЕДИНИТЬ(список; [разделитель]) | JOIN | Собирает список в текст через разделитель |
СЧЁТ(список) | COUNT, СЧЕТ | Считает элементы списка или заполненные значения поля подзадач |
Даты
| Функция | Английское название | Что делает |
|---|---|---|
СЕГОДНЯ() | TODAY | Возвращает сегодняшнюю дату |
ТДАТА() | NOW | Возвращает текущие дату и время |
ДАТА(год; месяц; день) | DATE | Собирает дату из года, месяца и дня |
РАЗНДАТ(от; до; [единица]) | DATEDIFF | Считает разницу между датами. По умолчанию — в днях |
ДАТАДОБАВИТЬ(дата; число; [единица]) | DATEADD | Сдвигает дату на указанное количество единиц времени |
ЧИСТРАБДНИ(от; до) | NETWORKDAYS | Считает будни между датами включительно |
ГОД(дата) | YEAR | Возвращает год |
МЕСЯЦ(дата) | MONTH | Возвращает номер месяца |
ДЕНЬ(дата) | DAY | Возвращает день месяца |
ДЕНЬНЕД(дата) | WEEKDAY | Возвращает номер дня недели от 1 для понедельника до 7 для воскресенья |
В РАЗНДАТ и ДАТАДОБАВИТЬ можно указать единицу времени "days", "weeks", "months", "years", "hours" или "minutes".
Условия и проверки
| Функция | Английское название | Что делает |
|---|---|---|
ЕСЛИ(условие; если_да; [если_нет]) | IF | Выбирает результат по условию |
И(условие; …) | AND | Проверяет, выполняются ли все условия |
ИЛИ(условие; …) | OR | Проверяет, выполняется ли хотя бы одно условие |
НЕ(условие) | NOT | Меняет условие на противоположное |
ЕПУСТО(значение) | ISBLANK | Проверяет, пустое ли значение |
ЕСЛИОШИБКА(выражение; замена) | IFERROR | Возвращает замену при ошибке вычисления |
Если вы переходите из Excel
При переносе расчёта замените ссылки на ячейки ссылками на поля карточки. Например, в выражении A2+B2 вместо ячеек можно указать {Заявки с сайта} и {Заявки из чата}. У некоторых знакомых функций отличаются порядок аргументов и результат.
| Функция | Что учесть при переносе |
|---|---|
ОКРВНИЗ, ОКРВВЕРХ | В Shtab принимают одно число и округляют до целого. В Excel у этих функций есть второй обязательный аргумент для округления до кратного. ОКРВНИЗ, ОКРВВЕРХ |
СЧЁТ | В Shtab можно посчитать заполненные поля подзадач, в том числе текстовые. В Excel при подсчёте ячеек СЧЁТ учитывает числовые значения. СЧЁТ в Excel |
ОБЪЕДИНИТЬ | В Shtab сначала указывается список, затем разделитель. Английское имя — JOIN. В Excel TEXTJOIN принимает разделитель, признак пропуска пустых ячеек и затем текст. ОБЪЕДИНИТЬ в Excel |
РАЗНДАТ | В Shtab английское имя — DATEDIFF, с двумя буквами F. Функция по умолчанию считает дни и может вернуть отрицательное число. В Excel у DATEDIF нужно явно указать единицу, а начальная дата позже конечной вызывает ошибку. РАЗНДАТ в Excel |
НАЙТИ | В Shtab, если совпадения нет, функция возвращает 0. В Excel отсутствие совпадения вызывает ошибку и можно указать начальную позицию поиска. НАЙТИ в Excel |
REPLACE | В Shtab это другое название ПОДСТАВИТЬ, которое заменяет совпадения в тексте. В Excel REPLACE заменяет заданное количество символов с указанной позиции. ЗАМЕНИТЬ в Excel |
Почему формула показывает другой результат
| Что произошло | Что проверить |
|---|---|
| Итог меньше ожидаемого | Проверьте, заполнены ли оба исходных поля. Пустое числовое поле при сложении считается нулём |
| В поле прочерк | Откройте редактор и проверьте исходные значения. Например, пустой дедлайн или деление на ноль могут дать пустой результат |
| Формула не сохраняется | Проверьте сообщение под выражением, названия полей, скобки и аргументы функций |
| Редактор сообщает о взаимной ссылке | Проверьте, не зависит ли формула от самой себя через другое поле |
| Расчёт перестал работать после удаления поля | Замените ссылку на удалённое поле или уберите её из выражения |
| Формула слишком сложная | Сократите выражение. Действуют ограничения до 2000 символов, 50 ссылок на поля и 200 шагов |
| Редактор не открывается | Проверьте, доступны ли пользовательские поля в компании и есть ли у вас права на редактирование формул |
Результат вычисляется из исходных значений карточки. Чтобы изменить результат, отредактируйте эти значения или выражение. Чтобы убрать расчёт со всех карточек с этим полем, очистите выражение в редакторе и сохраните изменения.
По результатам формул пока нельзя фильтровать, сортировать или группировать карточки. Эти значения также не включаются в экспорт XLSX.
Если формула использует поле с ограниченным доступом, итог может быть виден сотрудникам, которые не видят исходное значение. Например, сотрудник может видеть общее число заявок без доступа к разбивке по каналам. Проверьте, кому доступно поле с итогом.
По любым вопросам будем рады помочь в поддержке.