NocoDB формулы — тест с левой панелью

Главная › База знаний › NocoDB

Шпаргалка по формулам PuzzleBot и NocoDB

Рабочие формулы для связки PuzzleBot и базы данных NocoDB: даты, недели, дни, финансовые показатели и важные нюансы работы с таблицами.

Формулы для дат

Вносим дату из бота в базу NocoDB

Мы можем вносить дату в базу в текстовом формате, но тогда будет недоступна сортировка строк по дате. Поэтому нужен формат именно даты.

{{YEAR}}+"-"+{{MONTH}}+"-"+{{DAY}}

Вносим дату из блока календарь в базу NocoDB

Чтобы дата из блока календаря встала правильно в базу, нужно добавить форматирование для переменной даты календаря.

DATE_FORMAT({{data_diary}}, "Y-m-d")

Выдача даты в слайдере бота

По умолчанию дата выводится в формате yyyy-mm-dd. Визуально это плохо читается, поэтому меняем порядок цифр.

{{= DATE_FORMAT("[[date]]", "d.m.Y") =}}

Отчет на дату прошлого дня

По умолчанию переменные статистики в боте обнуляются в 3 ночи по Мск. Чтобы дата в базе была правильной, сначала минусуем один день, потом форматируем.

ADD_DAYS({{CURRENT_DATE}}, -1) DATE_FORMAT({{DAY_BEFORE}}, "Y-m-d")

Недели и дни в боте

Номер недели

Для некоторых механик нужно вытаскивать номер недели. Можно считать номер недели от текущей даты или от даты, внесенной через календарь.

DATE_FORMAT({{CURRENT_DATE}}, "W") DATE_FORMAT({{data_diary}}, "W")

Число дней в боте

Есть два способа считать дни в боте: через сценарий на старте или через формулу в таблице. Здесь {date} — это столбец с датой входа.

(DATETIME_DIFF(NOW(), {date}, "days") + 1)

Формулы для анализа финансов в NocoDB

Средний чек

Формула берет данные из столбца с суммой всех оплат подписчика и делит на их число.

ROUND(({payments_all} / {payments_count}))

Жизненный цикл

Считает разницу в днях между первой и последней покупкой: сколько дней подписчик активен с точки зрения продаж.

DATETIME_DIFF({date_last_pay}, {date_1_pay}, "days")

Статус подписчика

Формула помогает увидеть общий срез по покупкам. Со статусом «Неактивный» можно настраивать отдельные механики.

IF((DATETIME_DIFF(NOW(), {date_last_pay}, "days") <= 30), "Активный", IF((DATETIME_DIFF(NOW(), {date_last_pay}, "days") > 60), "Неактивный"))

Позже

Сюда можно добавить еще варианты для полноценного анализа: сегменты, повторные оплаты, продления и статусы по продуктам.

Плюсы NocoDB

Российские серверы

База находится на российских серверах. Персональные данные нельзя хранить где попало.

Лимиты

Лимиты больше, чем у Google таблиц. В новых таблицах 600 запросов в минуту на проект.

Привязка к столбцам

Можно спокойно двигать столбцы в таблице, на выдачу в боте это не повлияет.

Интеграция

Связать таблицу с ботом стало проще и нет риска блокировки аккаунта.

Важно знать

Обновление информации

Чтобы увидеть новую информацию в таблице, нужно обновить страницу.

Меньше формул

Привычные Google-формулы здесь не работают, но есть свой набор встроенных решений.

25 строк на развороте

На одном развороте видно только 25 строк. Чтобы увидеть больше, нужно листать базу.

История изменений

Если удалить таблицу, ее не получится восстановить. Лучше делать бэкапы.

Тип переменной

Если изменить тип данных в столбце, данные могут слететь. Перед этим лучше сохранить таблицу.

Названия столбцов

Названия столбцов должны быть на английском, иначе бот может неверно обработать данные.

Также читать

Скопировано