Почему стандартное среднее арифметическое не подходит для анализа роста
Вы когда-нибудь пробовали рассчитать средний прирост продаж, доходов или аудитории, просто сложив все проценты и разделив на количество периодов? Если да, то ваши результаты скорее всего искажены. Дело в том, что обычное среднее арифметическое не учитывает эффект сложных процентов — когда каждый новый период рост рассчитывается от уже увеличенной базы. Например, если в первый год продажи выросли на 50%, а во второй — упали на 30%, простое среднее покажет +10%, хотя реально вы остались на уровне 95% от исходной точки.
Для корректного анализа динамики используется средний темп роста (CAGR — Compound Annual Growth Rate). Этот показатель показывает реальную годовую доходность инвестиций или бизнес-метрик с учётом реинвестирования, что критично для долгосрочных прогнозов. В Excel его можно посчитать несколькими способами — от ручного ввода формулы до использования встроенных функций. Далее разберём каждый метод с примерами из практики.
Важно понимать разницу между:
- 📈 Абсолютным приростом (разница между конечным и начальным значением)
- 📊 Темпом роста (процентное изменение относительно базового периода)
- 🔄 Средним темпом роста (усреднённый показатель с учётом сложного процента)
Формула среднего темпа роста: математическая основа
Классическая формула CAGR выглядит так:
= (Конечное значение / Начальное значение)^(1 / Количество периодов) - 1
Где:
- 🔢
Конечное значение— данные на последний период (например, продажи в 2026 году) - 🔙
Начальное значение— данные на стартовый период (например, продажи в 2020 году) - 📅
Количество периодов— число лет, кварталов или месяцев между значениями
Например, если в 2020 году ваш доход составлял 100 тыс. руб., а в 2026 — 200 тыс. руб., то среднегодовой темп роста составит:
= (200000 / 100000)^(1/4) - 1 = 1,1892 - 1 = 0,1892 → 18,92%
Этот результат означает, что ваш доход рос в среднем на 18,92% в год, а не на 25% (как могло бы показаться при делении 100% прироста на 4 года). Разница возникает именно из-за кумулятивного эффекта.
Почему нельзя использовать СРЗНАЧ для процентов?
Потому что среднее арифметическое проигнорирует базовый эффект. Например, рост на 100% и падение на 50% в среднем дадут +25%, хотя реально вы вернётесь к исходной точке (100 → 200 → 100).
Способ 1: Ручной расчёт через степень (POWER)
Самый универсальный метод — использовать функцию СТЕПЕНЬ (или POWER в английской версии). Формула будет такой:
= СТЕПЕНЬ(конечное_значение / начальное_значение; 1/количество_периодов) - 1
Пример для данных в таблице:
| Год | Продажи, тыс. руб. |
|---|---|
| 2020 | 100 |
| 2021 | 120 |
| 2022 | 150 |
| 2023 | 180 |
| 2026 | 220 |
Формула для ячейки с результатом:
= СТЕПЕНЬ(B6/B2; 1/(B6-B1)) - 1
Где:
- 📌
B6— продажи в 2026 году (220 тыс.) - 📌
B2— продажи в 2020 году (100 тыс.) - 📌
B6-B1— разница лет (2026–2020=4)
Используются абсолютные ссылки ($B$2) если формула копируется|Количество периодов посчитано правильно (годы/кварталы)|Начальное значение не равно нулю|Данные отсортированы по времени-->
⚠️ Внимание: Если начальное или конечное значение равно нулю или отрицательно, функция вернёт ошибку #ЧИСЛО!. В таких случаях используйте метод логарифмов (см. следующий раздел).
Способ 2: Логарифмический метод (для отрицательных значений)
Когда данные содержат нули или отрицательные числа, степенная функция ломается. На помощь приходит натуральный логарифм (LN). Формула преобразуется так:
= EXP(LN(конечное_значение) - LN(начальное_значение)) / количество_периодов
На практике это выглядит как:
= EXP((LN(B6) - LN(B2)) / (B6-B1)) - 1
Преимущества метода:
- ✅ Работает с нулевыми и отрицательными значениями (если конечное значение того же знака, что и начальное)
- ✅ Точность выше за счёт избегания округлений при возведении в степень
- ✅ Легко адаптируется для расчёта между любыми двумя точками ряда
Например, если в 2020 году у вас был убыток −100 тыс. руб., а в 2026 — прибыль 50 тыс. руб., классическая формула даст ошибку, а логарифмическая покажет реальный темп сокращения убытков.
Способ 3: Функция СРГЕОМ (геометрическое среднее)
В Excel есть встроенная функция СРГЕОМ (GEOMEAN), которая рассчитывает среднее геометрическое — математическую основу CAGR. Однако её нужно правильно адаптировать:
= СРГЕОМ(массив_коэффициентов_роста) - 1
Шаги для использования:
- Посчитайте коэффициенты роста для каждого периода:
=B3/B2,=B4/B3и т.д. - Выделите диапазон с этими коэффициентами.
- Примените
СРГЕОМи отнимите 1, чтобы получить процент.
Пример для нашей таблицы:
= СРГЕОМ(B3:B6/B2:B5) - 1
⚠️ Внимание: ФункцияСРГЕОМигнорирует текстовые значения и нули, но если в диапазоне есть отрицательные числа, она вернёт ошибку. Для таких случаев предварительно используйтеАБСили логарифмический метод.
Типовые ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при расчёте CAGR. Вот самые распространённые:
- 🔴 Путают количество периодов: Если данные за 2020–2026 годы, количество периодов — 4 (2026−2020), а не 5.
- 🔴 Используют простые проценты: Складывают годовой рост (10% + 15% + 20%) и делят на 3, вместо геометрического усреднения.
- 🔴 Игнорируют инфляцию: CAGR показывает номинальный рост. Для реального темпа нужно вычесть инфляцию.
- 🔴 Не проверяют знаки: Отрицательное начальное и положительное конечное значение требуют корректировки формулы.
Чтобы проверить правильность расчёта, используйте обратную проверку:
= начальное_значение * (1 + CAGR)^количество_периодов
Результат должен совпасть с конечным значением (с учётом округлений).
Практическое применение: Анализ бизнес-показателей
Средний темп роста незаменим в следующих сценариях:
- 📈 Финансовое планирование: Прогнозирование доходности портфеля инвестиций.
- 🛒 Маркетинг: Оценка динамики продаж по каналам (например, рост трафика из Instagram).
- 🏢 HR-аналитика: Расчёт среднегодового увеличения зарплат или текучести кадров.
- 🌍 Макроэкономика: Сравнение ВВП стран с учётом сложного процента.
Пример из практики: Компания хочет оценить эффективность рекламной кампании за 3 года. Данные по лидам:
| Год | Лиды, шт. | Темп роста |
|---|---|---|
| 2021 | 1 000 | — |
| 2022 | 1 500 | +50% |
| 2023 | 1 800 | +20% |
| 2026 | 2 500 | +38,9% |
Простое среднее темпа роста: (50 + 20 + 38,9)/3 = 36,3%. Но CAGR покажет:
= СТЕПЕНЬ(2500/1000; 1/3) - 1 = 35,7%
Разница в 0,6% может показаться незначительной, но на больших суммах или долгих периодах это тысячи долларов.
FAQ: Ответы на частые вопросы
Можно ли рассчитать CAGR для месячных данных?
Да, но количество периодов должно быть в месяцах. Например, для данных с января 2023 по июнь 2026 (18 месяцев) формула будет:
= СТЕПЕНЬ(конечное/начальное; 1/18) - 1
Чтобы перевести месячный CAGR в годовой, используйте:
= (1 + месячный_CAGR)^12 - 1
Что делать, если в данных есть пропущенные периоды?
Восстановите пропущенные значения с помощью линейной интерполяции или используйте только доступные точки. Например, для данных за 2020 и 2023 годы (пропущены 2021–2022) берите количество периодов = 3.
Альтернатива — рассчитать CAGR для каждого доступного интервала отдельно, а затем усреднить результаты.
Как визуализировать CAGR на графике?
Добавьте на график линию тренда по экспоненциальной функции:
- Постройте график по исходным данным.
- Кликните правой кнопкой по точке на линии →
Добавить линию тренда. - Выберите тип
Экспоненциальная. - В легенде укажите значение CAGR из расчётов.
Почему мой CAGR отличается от данных в отчёте?
Разница может возникнуть из-за:
- Разных начальных/конечных точек (например, отчёт берёт данные с середины года).
- Корректировки на инфляцию или сезонность.
- Использования медианного темпа роста вместо среднего.
Уточните методику расчёта в отчёте или попробуйте воспроизвести их логику в Excel.
Можно ли автоматизировать расчёт CAGR для большого набора данных?
Да, с помощью Power Query или VBA:
- В
Power Queryдобавьте пользовательский столбец с формулой CAGR. - Или напишите макрос на VBA, который будет проходить по строкам и рассчитывать показатель.
Пример кода VBA для расчёта CAGR между двумя столбцами:
Function CalculateCAGR(startVal As Range, endVal As Range, periods As Integer) As Double
CalculateCAGR = (endVal.Value / startVal.Value) ^ (1 / periods) - 1
End Function