Удержание пользователей, клиентов или сотрудников — ключевой показатель для бизнеса, маркетинга и 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 клиента | Дата покупки | Сумма |
|---|---|---|
| 1001 | 01.01.2026 | 1500 |
| 1002 | 05.01.2026 | 2300 |
| 1001 | 15.02.2026 | 800 |
| 1003 | 20.01.2026 | 1200 |
| 1002 | 10.02.2026 | 1800 |
Чтобы посчитать удержание с января по февраль:
- В ячейке
E2введите формулу для количества уникальных клиентов в январе:=СЧЁТЕСЛИ($B$2:$B$6; ">="&ДАТА(2026;1;1)) - СЧЁТЕСЛИ($B$2:$B$6; ">="&ДАТА(2026;2;1))(это количество клиентов, которые покупали только в январе).
- В ячейке
F2посчитайте, сколько из них вернулись в феврале:=СЧЁТЕСЛИМН($A$2:$A$6; ">="&E2; $B$2:$B$6; ">="&ДАТА(2026;2;1); $B$2:$B$6; "<"&ДАТА(2026;3;1)) - Удержание в процентах:
=F2/E2*100.
Когортный анализ удержания: шаг за шагом
Когортный анализ показывает, как удерживаются группы пользователей (когорты), привлечённые в один и тот же период. Это более точный метод, чем классический, потому что учитывает динамику по времени.
Алгоритм расчёта:
- Сгруппируйте данных по месяцу первой покупки (когорте).
- Посчитайте количество уникальных клиентов в каждой когорте.
- Отследите, сколько из них вернулось в следующие месяцы.
- Рассчитайте процент удержания для каждого периода.
Пример таблицы для когортного анализа:
| Когорта (месяц первой покупки) | Месяц 0 | Месяц 1 | Месяц 2 |
|---|---|---|---|
| Январь 2026 | 100% | 45% | 30% |
| Февраль 2026 | 100% | 50% | — |
| Март 2026 | 100% | — | — |
Формула для месяца 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.
Разберём остальные ошибки:
- Игнорирование "холодных" пользователей: если клиент не активен 6 месяцев, его возвращение не должно учитываться как удержание текущей когорты.
- Неправильная группировка по времени: сравнение недель с месяцами или кварталов с годами приводит к некорректным выводам.
- Отсутствие фильтра по первому действию: удержание считается только для тех, кто впервые совершил целевое действие (покупку, регистрацию и т. д.).
- Использование средних значений: удержание по разным когортам может сильно отличаться — усреднение скрывает реальные тренды.
Чтобы избежать ошибок, всегда проверяйте:
- 🔍 Уникальность ID (нет дубликатов).
- 📅 Корректность дат (нет пустых ячеек или ошибочных форматов).
- 📊 Логику группировки (когорты разделены по первому действию).
Автоматизация расчётов с Power Query
Если у вас тысячи строк данных, ручной расчёт удержания в Excel станет кошмаром. Power Query (вкладка Данные → Получить данные) позволяет автоматизировать процесс:
Шаги для создания когортной таблицы:
- Загрузите данные в Power Query (
Данные → Из таблицы/диапазона). - Добавьте столбец с месяцем первой покупки:
= Table.AddColumn(#"Предыдущий шаг", "Первый месяц", each Date.ToText(Date.StartOfMonth([Дата]), "yyyy-MM")) - Сгруппируйте данные по когортам и посчитайте уникальные ID:
= Table.Group(#"Предыдущий шаг", {"Первый месяц"}, {{"Уникальные клиенты", each _, type table}}) - Разверните таблицу и добавьте столбцы для каждого последующего месяца.
Преимущества Power Query:
- ⚡ Скорость: обработка миллионов строк за секунды.
- 🔄 Воспроизводимость: один раз настроили — обновляйте данные в один клик.
- 🛠 Гибкость: можно добавлять фильтры, условия и новые столбцы без формул.
Визуализация удержания: графики и дашборды
Цифры удержания мало что говорят без наглядного представления. В Excel можно построить:
1. Тепловую карту когорт (conditional formatting):
- Выделите таблицу с процентами удержания.
- Перейдите на вкладку
Главная → Условное форматирование → Цветовые шкалы. - Выберите палитру "зелёный-жёлтый-красный" для визуализации падения удержания.
2. Линейный график динамики:
- Выделите столбцы с месяцами и строку с удержанием для одной когорты.
- Вставьте график (
Вставка → График → С областями). - Добавьте трендовую линию для прогноза (
Щелчок ПКМ по линии → Добавить линию тренда).
3. Сводная таблица с сегментацией:
- Создайте сводную таблицу (
Вставка → Сводная таблица). - Перетащите "Когорту" в строки, а "Месяц" и "Удержание" в значения.
- Добавьте срезы для фильтрации по регионам, каналам привлечения и т. д.
Пример тепловой карты для когортного анализа:
| Когорта \ Месяц | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| Январь 2026 | 100% | 45% | 30% | 15% |
| Февраль 2026 | 100% | 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% возможно, если в следующем периоде к вам вернулось больше пользователей, чем было в исходной когорте. Это бывает в двух случаях:
- Вы считаете удержание по транзакциям, а не по уникальным пользователям (один клиент мог сделать несколько покупок).
- В данных есть дубликаты ID или ошибки сегментации (например, пользователи из другой когорты попали в расчёт).
Проверьте формулы и убедитесь, что учитываете только уникальные возвраты.
Какое удержание считается хорошим?
Нормы удержания сильно зависят от отрасли:
- 📱 Мобильные приложения: 20–40% на 30-й день считается хорошим показателем.
- 🛒 E-commerce: 30–50% повторных покупок в течение 3 месяцев.
- 💼 SaaS: 80–90% ежемесячного удержания для подписочных сервисов.
- 🎮 Игры: 10–20% на 7-й день (из-за высокой конкуренции).
Важно не столько абсолютное значение, сколько динамика: если удержание падает на 5% каждый месяц, это сигнал для улучшения продукта.
Как учесть сезонность при расчёте удержания?
Сезонность искажает данные, если сравнивать, например, декабрь (пик продаж) с январём (спад). Решения:
- Сравнивайте когорты одного сезона (например, декабрь 2023 vs декабрь 2022).
- Используйте скользящее среднее за 3–6 месяцев для сглаживания пиков.
- Стройте графики с относительным удержанием (процент от среднего по году).
В Excel для скользящего среднего используйте:
=СРЗНАЧ(B2:D2)
(где B2:D2 — удержание за 3 месяца).