Расчёт удержания в Excel: формулы, примеры и типичные ошибки

Удержание пользователей, клиентов или сотрудников — ключевой показатель для бизнеса, маркетинга и HR. Но как правильно его посчитать в Excel, если под рукой только сырые данные? Многие ошибочно путают удержание с возвращаемостью или используют упрощённые формулы, которые искажают реальную картину. В этой статье разберём 3 метода расчёта удержания (классический, когортный и скользящий), покажем готовые формулы Excel с пояснениями, и предупредим о 5 типичных ошибках, которые портят точность вычислений.

Вы узнаете, как автоматизировать процесс с помощью СЧЁТЕСЛИМН и ЕСЛИОШИБКА, построите динамическую таблицу удержания за несколько минут, и научитесь визуализировать результаты на графиках. А для тех, кто работает с большими данными — бонус: шаблон Power Query для обработки когорт за 2 клика. Начнём с основ.

Что такое удержание и почему его считают в Excel

Удержание (retention rate) — это процент пользователей (клиентов, сотрудников), которые продолжали взаимодействовать с продуктом/компанией через определённый промежуток времени. Например, сколько покупателей, сделавших заказ в январе, вернулись в феврале или марте.

Почему именно Excel? Большинство аналитиков используют его потому что:

  • 📊 Гибкость: можно адаптировать формулы под любые данные (даты, ID пользователей, транзакции).
  • 💰 Бесплатно: в отличие от специализированных инструментов вроде Amplitude или Mixpanel.
  • 🔄 Автоматизация: формулы обновляются при изменении исходных данных.
  • 📈 Визуализация: построение графиков и сводных таблиц без экспорта в другие программы.

Но есть и подводные камни. Например, Excel не оптимизирован для работы с миллионами строк — при больших объёмах данных лучше использовать Power BI или SQL. А ещё вручную легко допустить ошибку в формуле, что приведёт к завышенным или заниженным показателям.

📊 Как часто вы рассчитываете удержание?
Ежемесячно
Еженедельно
Раз в квартал
Никогда не считал

Классическая формула удержания в Excel

Самый простой способ посчитать удержание — использовать отношение возвратившихся пользователей к исходной группе. Формула выглядит так:

=СЧЁТЕСЛИМН(диапазон_периода_2; критерий_1; диапазон_периода_2; критерий_2) / СЧЁТЕСЛИ(диапазон_периода_1; критерий_1)

Разберём на примере. Допустим, у вас есть таблица с данными о покупках:

ID клиентаДата покупкиСумма
100101.01.20261500
100205.01.20262300
100115.02.2026800
100320.01.20261200
100210.02.20261800

Чтобы посчитать удержание с января по февраль:

  1. В ячейке E2 введите формулу для количества уникальных клиентов в январе:
    =СЧЁТЕСЛИ($B$2:$B$6; ">="&ДАТА(2026;1;1)) - СЧЁТЕСЛИ($B$2:$B$6; ">="&ДАТА(2026;2;1))

    (это количество клиентов, которые покупали только в январе).

  2. В ячейке F2 посчитайте, сколько из них вернулись в феврале:
    =СЧЁТЕСЛИМН($A$2:$A$6; ">="&E2; $B$2:$B$6; ">="&ДАТА(2026;2;1); $B$2:$B$6; "<"&ДАТА(2026;3;1))
  3. Удержание в процентах: =F2/E2*100.

Когортный анализ удержания: шаг за шагом

Когортный анализ показывает, как удерживаются группы пользователей (когорты), привлечённые в один и тот же период. Это более точный метод, чем классический, потому что учитывает динамику по времени.

Алгоритм расчёта:

  1. Сгруппируйте данных по месяцу первой покупки (когорте).
  2. Посчитайте количество уникальных клиентов в каждой когорте.
  3. Отследите, сколько из них вернулось в следующие месяцы.
  4. Рассчитайте процент удержания для каждого периода.

Пример таблицы для когортного анализа:

Когорта (месяц первой покупки)Месяц 0Месяц 1Месяц 2
Январь 2026100%45%30%
Февраль 2026100%50%
Март 2026100%

Формула для месяца 1 (февраль) для когорты января:

=СЧЁТЕСЛИМН($A$2:$A$100; ">="&МИН(ЕСЛИ(($B$2:$B$100>=ДАТА(2026;1;1))($B$2:$B$100<ДАТА(2026;2;1)); $A$2:$A$100)); $B$2:$B$100; ">="&ДАТА(2026;2;1); $B$2:$B$100; "<"&ДАТА(2026;3;1)) / СЧЁТЕСЛИМН($A$2:$A$100; ">="&МИН(ЕСЛИ(($B$2:$B$100>=ДАТА(2026;1;1))($B$2:$B$100<ДАТА(2026;2;1)); $A$2:$A$100)))

Отсортируйте данные по ID клиента и дате|Удалите дубликаты транзакций|Добавьте столбец с месяцем первой покупки|Создайте сводную таблицу по когортам-->

Скользящее удержание: когда нужно учитывать окно возврата

Скользящее удержание (rolling retention) показывает, сколько пользователей вернулось хотя бы раз в течение заданного периода (например, 30 дней), а не строго в следующем месяце. Это полезно для продуктов с нерегулярной активностью (например, мобильные игры или сервисы по подписке).

Формула для скользящего удержания на 30 дней:

=СЧЁТЕСЛИМН($A$2:$A$100; ">="&МИН(ЕСЛИ(($B$2:$B$100>=ДАТА(2026;1;1))($B$2:$B$100<ДАТА(2026;2;1)); $A$2:$A$100)); $B$2:$B$100; ">="&ДАТА(2026;1;1); $B$2:$B$100; "<="&ДАТА(2026;1;31)+30) / СЧЁТЕСЛИМН($A$2:$A$100; ">="&МИН(ЕСЛИ(($B$2:$B$100>=ДАТА(2026;1;1))($B$2:$B$100<ДАТА(2026;2;1)); $A$2:$A$100)))

Ключевое отличие от классического метода: здесь мы учитываем любую активность в течение 30 дней, а не привязываемся к календарным месяцам. Это особенно важно для:

  • 🎮 Игровых приложений (игроки могут возвращаться нерегулярно).
  • 📱 Сервисов с push-уведомлениями (пользователи реагируют на триггеры).
  • 🛒 Маркетплейсов (покупки зависят от акций и сезонов).
Почему скользящее удержание выше классического?

Скользящий метод учитывает всех, кто вернулся в течение периода (например, 30 дней), даже если это произошло не в следующем календарном месяце. Классический метод строго привязан к месяцам, поэтому "теряет" пользователей, которые вернулись, например, на 35-й день.

Типичные ошибки при расчёте удержания

Даже опытные аналитики допускают ошибки, которые искажают результаты. Вот 5 самых распространённых:

⚠️ Внимание: Если вы используете СЧЁТЕСЛИ вместо СЧЁТЕСЛИМН, вы получите завышенное удержание, потому что формула посчитает всех пользователей, а не только уникальные ID.

Разберём остальные ошибки:

  1. Игнорирование "холодных" пользователей: если клиент не активен 6 месяцев, его возвращение не должно учитываться как удержание текущей когорты.
  2. Неправильная группировка по времени: сравнение недель с месяцами или кварталов с годами приводит к некорректным выводам.
  3. Отсутствие фильтра по первому действию: удержание считается только для тех, кто впервые совершил целевое действие (покупку, регистрацию и т. д.).
  4. Использование средних значений: удержание по разным когортам может сильно отличаться — усреднение скрывает реальные тренды.

Чтобы избежать ошибок, всегда проверяйте:

  • 🔍 Уникальность ID (нет дубликатов).
  • 📅 Корректность дат (нет пустых ячеек или ошибочных форматов).
  • 📊 Логику группировки (когорты разделены по первому действию).

Автоматизация расчётов с Power Query

Если у вас тысячи строк данных, ручной расчёт удержания в Excel станет кошмаром. Power Query (вкладка Данные → Получить данные) позволяет автоматизировать процесс:

Шаги для создания когортной таблицы:

  1. Загрузите данные в Power Query (Данные → Из таблицы/диапазона).
  2. Добавьте столбец с месяцем первой покупки:
    = Table.AddColumn(#"Предыдущий шаг", "Первый месяц", each Date.ToText(Date.StartOfMonth([Дата]), "yyyy-MM"))
  3. Сгруппируйте данные по когортам и посчитайте уникальные ID:
    = Table.Group(#"Предыдущий шаг", {"Первый месяц"}, {{"Уникальные клиенты", each _, type table}})
  4. Разверните таблицу и добавьте столбцы для каждого последующего месяца.

Преимущества Power Query:

  • Скорость: обработка миллионов строк за секунды.
  • 🔄 Воспроизводимость: один раз настроили — обновляйте данные в один клик.
  • 🛠 Гибкость: можно добавлять фильтры, условия и новые столбцы без формул.

Визуализация удержания: графики и дашборды

Цифры удержания мало что говорят без наглядного представления. В Excel можно построить:

1. Тепловую карту когорт (conditional formatting):

  • Выделите таблицу с процентами удержания.
  • Перейдите на вкладку Главная → Условное форматирование → Цветовые шкалы.
  • Выберите палитру "зелёный-жёлтый-красный" для визуализации падения удержания.

2. Линейный график динамики:

  • Выделите столбцы с месяцами и строку с удержанием для одной когорты.
  • Вставьте график (Вставка → График → С областями).
  • Добавьте трендовую линию для прогноза (Щелчок ПКМ по линии → Добавить линию тренда).

3. Сводная таблица с сегментацией:

  • Создайте сводную таблицу (Вставка → Сводная таблица).
  • Перетащите "Когорту" в строки, а "Месяц" и "Удержание" в значения.
  • Добавьте срезы для фильтрации по регионам, каналам привлечения и т. д.

Пример тепловой карты для когортного анализа:

Когорта \ Месяц0123
Январь 2026100%45%30%15%
Февраль 2026100%50%
⚠️ Внимание: При построении графиков удержания всегда указывайте абсолютные значения (количество пользователей) рядом с процентами. Это поможет избежать ложных выводов: например, удержание 50% от 10 пользователей — это 5 человек, а 50% от 1000 — 500, и эти цифры несоизмеримы.

FAQ: Частые вопросы по расчёту удержания

Как посчитать удержание, если у меня нет ID пользователей, а только даты транзакций?

Используйте комбинацию даты и другого уникального идентификатора (например, email или номера телефона, если они есть в данных). Если уникальных признаков нет, можно сгруппировать транзакции по дате и сумме, но это менее точно. Альтернатива — считать удержание по количеству транзакций, а не уникальных пользователей, но такой метод завышает показатели.

Можно ли рассчитать удержание в Google Sheets по тем же формулам?

Да, все формулы из этой статьи работают в Google Sheets без изменений. Единственное отличие — в Sheets нет Power Query, но можно использовать QUERY для аналогичных задач. Например:

=QUERY(A2:B100; "SELECT A, COUNT(A) WHERE B >= date '2026-01-01' AND B < date '2026-02-01' GROUP BY A LABEL COUNT(A) 'Количество'"; 1)

Как интерпретировать удержание 120%? Это ошибка?

Удержание выше 100% возможно, если в следующем периоде к вам вернулось больше пользователей, чем было в исходной когорте. Это бывает в двух случаях:

  1. Вы считаете удержание по транзакциям, а не по уникальным пользователям (один клиент мог сделать несколько покупок).
  2. В данных есть дубликаты ID или ошибки сегментации (например, пользователи из другой когорты попали в расчёт).

Проверьте формулы и убедитесь, что учитываете только уникальные возвраты.

Какое удержание считается хорошим?

Нормы удержания сильно зависят от отрасли:

  • 📱 Мобильные приложения: 20–40% на 30-й день считается хорошим показателем.
  • 🛒 E-commerce: 30–50% повторных покупок в течение 3 месяцев.
  • 💼 SaaS: 80–90% ежемесячного удержания для подписочных сервисов.
  • 🎮 Игры: 10–20% на 7-й день (из-за высокой конкуренции).

Важно не столько абсолютное значение, сколько динамика: если удержание падает на 5% каждый месяц, это сигнал для улучшения продукта.

Как учесть сезонность при расчёте удержания?

Сезонность искажает данные, если сравнивать, например, декабрь (пик продаж) с январём (спад). Решения:

  1. Сравнивайте когорты одного сезона (например, декабрь 2023 vs декабрь 2022).
  2. Используйте скользящее среднее за 3–6 месяцев для сглаживания пиков.
  3. Стройте графики с относительным удержанием (процент от среднего по году).

В Excel для скользящего среднего используйте:

=СРЗНАЧ(B2:D2)

(где B2:D2 — удержание за 3 месяца).