Создание матрицы ABC-XYZ анализа в Microsoft Excel начинается с ошибки: 80% пользователей сначала сортируют данные по убыванию, а потом пытаются применить функции СЧЁТЕСЛИ или ЕСЛИ к неструктурированным столбцам. Это приводит к некорректному распределению товаров по группам А/В/С и X/Y/Z, особенно если в наборе данных есть нулевые продажи или выбросы. Правильный алгоритм требует предварительной нормализации значений, расчёта кумулятивных долей и только затем — применения условного форматирования.
В этой инструкции разберём реальный пример: у нас есть таблица с 500 SKU, данными о продажах за год и коэффициентами вариации. Цель — автоматизировать распределение товаров по 9 сегментам матрицы (от AX до CZ) с учётом пороговых значений: 80% для группы A, 15% для B, и 5% для C по доле в выручке, а для XYZ — стандартные отклонения 10%, 25% и 65%. Все формулы будут адаптированы под динамические диапазоны, чтобы при добавлении новых строк не пришлось переделывать расчёты.
Что такое ABC-XYZ анализ и зачем он нужен
Матрица ABC-XYZ анализа — это инструмент комбинированной сегментации, который сочетает два подхода:
- 📊 ABC-анализ: ранжирует товары по их вкладу в общую выручку (или другой метрике). Группа A — самые значимые 20% позиций, приносящие 80% дохода.
- 📉 XYZ-анализ: оценивает стабильность спроса по коэффициенту вариации. Группа X — товары с предсказуемым спросом (вариация <10%), Z — хаотичные продажи (вариация >65%).
Комбинация этих методов даёт 9 сегментов (например, AX — высокодоходные и стабильные товары, CZ — низкодоходные с непредсказуемым спросом), что позволяет:
- 🛒 Оптимизировать запасы: для AX использовать модель "точно в срок", для CZ — минимальные страховые запасы.
- 💰 Перераспределять бюджет: инвестировать в продвижение AY (высокий потенциал, но нестабильный спрос).
- ⚠️ Выявлять аномалии: товары группы BZ могут сигнализировать о проблемах с логистикой или маркетингом.
⚠️ Внимание: Если в ваших данных есть товары с нулевыми продажами за период, их нужно исключить из анализа или заменить коэффициент вариации на максимальное значение (например, 100%). В противном случае формулы вернут ошибку #ДЕЛ/0!.
Подготовка данных: структура таблицы и предварительные расчёты
Для корректного анализа исходная таблица должна содержать как минимум 3 столбца:
- Наименование товара (или SKU)
- Выручка за период (или количество продаж)
- Продажи по месяцам (для расчёта коэффициента вариации)
Пример структуры:
| SKU | Выручка, руб. | Янв | Фев | ... | Дек |
|---|---|---|---|---|---|
| Товар 1 | 1 250 000 | 120 000 | 95 000 | ... | 110 000 |
| Товар 2 | 890 000 | 78 000 | 82 000 | ... | 75 000 |
| ... | ... | ... | ... | ... | ... |
Перед сегментацией выполните 3 обязательных шага:
- Удалите дубликаты SKU (используйте
ДАННЫЕ → Удалить дубликаты). - Отсортируйте данные по убыванию выручки (выделите столбец →
ГЛАВНАЯ → Сортировка и фильтр). - Добавьте столбец "Доля в выручке, %" с формулой:
=B2/$B$12*100, гдеB12— ячейка с общей выручкой (используйте абсолютную ссылку$B$12).
Удалить дубликаты SKU|Отсортировать по убыванию выручки|Добавить столбец "Доля в выручке, %"|Проверить отсутствие нулевых значений в продажах-->
Расчёт ABC-групп: формулы и пороговые значения
Для распределения товаров по группам A/B/C используйте кумулятивную долю и функцию ЕСЛИ с вложенными условиями. Алгоритм:
- Добавьте столбец "Кумулятивная доля, %" с формулой:
=СУММ($D$2:D2), гдеD2— ячейка с долей первого товара. - Создайте столбец "ABC-группа" и примените формулу:
=ЕСЛИ(E2<=80%;"A";ЕСЛИ(E2<=95%;"B";"C"))Здесь
E2— ячейка с кумулятивной долей.
По умолчанию пороги устанавливаются как 80% (A) / 15% (B) / 5% (C), но их можно корректировать под специфику бизнеса. Например, для розничных сетей с широким ассортиментом часто используют распределение 70% / 20% / 10%.
⚠️ Внимание: Если после применения формулы все товары попали в группу A, проверьте:
- Корректность расчёта кумулятивной доли (должна расти от строки к строке).
- Отсутствие скрытых фильтров (нажмите
ДАННЫЕ → Фильтр → Очистить).- Формат ячеек с долями (должен быть "Процентный" или "Общий").
Выделите диапазон → ГЛАВНАЯ → Условное форматирование → Правила выделения ячеек → Текст содержит → введите "A" и выберите зелёный цвет.-->
Расчёт XYZ-групп: коэффициент вариации и его интерпретация
Для определения групп X/Y/Z нужно рассчитать коэффициент вариации (CV) по формуле:
CV = (Стандартное отклонение / Среднее значение) × 100%
В Excel это реализуется так:
- Добавьте столбец "Среднее продаж" с формулой:
=СРЗНАЧ(C2:N2), гдеC2:N2— диапазон с ежемесячными продажами. - Добавьте столбец "Ст. отклонение" с формулой:
=СТАНДОТКЛОН.В(C2:N2). - Рассчитайте CV, %:
=F2/G2*100, гдеF2— стандартное отклонение,G2— среднее. - Примените сегментацию по правилу:
=ЕСЛИ(H2<=10%;"X";ЕСЛИ(H2<=25%;"Y";"Z"))
Критические нюансы:
- 🔢 Для товаров с нулевыми продажами за все месяцы CV будет равен
#ДЕЛ/0!. Замените их на формулу=ЕСЛИОШИБКА(H2;100). - 📅 Если анализируете менее 6 месяцев данных, пороги для XYZ нужно скорректировать в сторону увеличения (например, 15%/30%/55%).
- 🛠️ Для ускорения расчётов используйте
СТАНДОТКЛОН.ГвместоСТАНДОТКЛОН.В, если выборка больше 30 наблюдений.
Почему стандартное отклонение не равно коэффициенту вариации
Коэффициент вариации (CV) показывает относительную изменчивость данных (в % от среднего), тогда как стандартное отклонение — абсолютную (в тех же единицах, что и исходные данные). Например, для двух товаров со стандартным отклонением 100 шт.:
- Товар 1: средние продажи 1000 шт. → CV = 10% (группа X).
- Товар 2: средние продажи 200 шт. → CV = 50% (группа Z).
Таким образом, CV позволяет сравнивать стабильность спроса для товаров с разным объёмом продаж.
Построение матрицы ABC-XYZ: комбинация групп
После распределения товаров по ABC и XYZ остаётся объединить результаты в единую матрицу. Для этого:
- Добавьте столбец "ABC-XYZ" и используйте формулу конкатенации:
=J2&K2, гдеJ2— ABC-группа,K2— XYZ-группа. - Создайте сводную таблицу:
- Поместите поле "ABC-XYZ" в "Строки".
- Добавьте "Выручка" в "Значения" (опция "Сумма").
- Отсортируйте по убыванию выручки.
Пример итоговой матрицы:
| Сегмент | Количество SKU | Доля в выручке | Рекомендации |
|---|---|---|---|
| AX | 12 | 45% | Максимальный запас, приоритет в логистике |
| AY | 8 | 22% | Контроль запасов, промо-акции |
| BX | 15 | 12% | Средний запас, анализ трендов |
| CZ | 40 | 3% | Минимальный запас, рассмотрение вывода |
Критическая ошибка: Не используйте функцию ВПР или ИНДЕКС/ПОИСКПОЗ для автоматического заполнения рекомендаций по сегментам. Вместо этого создайте отдельную таблицу правил (как в примере выше) и свяжите её с данными через ПРОСМОТР или XLOOKUP (в Excel 365).
ABC-анализ|XYZ-анализ|ABC-XYZ матрицу|Другие методы-->
Визуализация результатов: диаграммы и условное форматирование
Для наглядного представления матрицы используйте:
- 📊 Тепловую карту: выделите диапазон с сегментами →
ГЛАВНАЯ → Условное форматирование → Цветовые шкалы. Для группы AX установите зелёный, для CZ — красный. - 📈 Пузырьковая диаграмма:
- Ось X — коэффициент вариации (CV).
- Ось Y — доля в выручке.
- Размер пузырька — количество SKU в сегменте.
- 🗂️ Древесная карта (Treemap): вставьте →
ВСТАВКА → Иерархическая диаграмма. Используйте "ABC-XYZ" как категорию, "Выручка" как значение.
Пример настройки тепловой карты для столбца "ABC-XYZ":
- Выделите диапазон с сегментами (например,
L2:L501). - Перейдите в
Условное форматирование → Правила выделения ячеек → Содержит текст. - Добавьте 3 правила:
- Для "A*" — зелёный фон.
- Для "B*" — жёлтый фон.
- Для "C*" — оранжевый фон.
Типичные ошибки и как их избежать
Даже опытные аналитики допускают 5 критичных ошибок при построении матрицы:
- 🔄 Игнорирование сезонности: Коэффициент вариации за год может скрывать сезонные пики. Решение — рассчитывать CV по кварталам или использовать скользящее среднее.
- 📉 Некорректные пороги: Стандартные 80/15/5 для ABC подходят не всем бизнесам. Для рынков с длинным хвостом (например, e-commerce) группа A может занимать до 90% выручки.
- 🚫 Включение нулевых продаж: Товары без продаж искажают стандартное отклонение. Решение — фильтровать их перед анализом или присваивать им группу CZ вручную.
- 🔢 Округление долей: Использование целых чисел (например, 80% вместо 80.3%) приводит к неточной сегментации. Всегда сохраняйте 2-3 знака после запятой.
- 📎 Статичные диапазоны: Если в формулах используются абсолютные ссылки (например,
$B$2:$B$500), при добавлении новых строк расчёты сломаются. Заменяйте наТаблицаExcel[Столбец]или динамические именованные диапазоны.
Проверьте свой файл на наличие этих ошибок с помощью чек-листа:
Учтена сезонность в данных?|Пороги ABC/XYZ адаптированы под бизнес?|Нулевые продажи исключены или обработаны?|Доли рассчитаны с точностью до 0.01%?|Формулы используют динамические диапазоны?-->
Автоматизация анализа: макросы и Power Query
Для регулярного ABC-XYZ анализа целесообразно автоматизировать процесс:
Способ 1: Макрос VBA
Создайте макрос для автоматического расчёта групп:
Sub ABC_XYZ_Analysis()
Dim ws As Worksheet
Set ws = ActiveSheet
' Добавляем столбцы для расчётов
ws.Range("D1").Value = "Доля, %"
ws.Range("E1").Value = "Кумулятивная доля, %"
ws.Range("F1").Value = "ABC-группа"
ws.Range("G1").Value = "CV, %"
ws.Range("H1").Value = "XYZ-группа"
ws.Range("I1").Value = "ABC-XYZ"
' Формулы для ABC-анализа
ws.Range("D2").Formula = "=B2/SUM($B:$B)*100"
ws.Range("E2").Formula = "=SUM($D$2:D2)"
ws.Range("F2").Formula = "=IF(E2<=80%, ""A"", IF(E2<=95%, ""B"", ""C""))"
' Формулы для XYZ-анализа (предполагается, что месячные данные в C2:N2)
ws.Range("G2").Formula = "=STDEV.P(C2:N2)/AVERAGE(C2:N2)*100"
ws.Range("H2").Formula = "=IF(G2<=10, ""X"", IF(G2<=25, ""Y"", ""Z""))"
ws.Range("I2").Formula = "=F2&H2"
' Копируем формулы на весь диапазон
ws.Range("D2:I2").AutoFill Destination:=ws.Range("D2:I" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
End Sub
Способ 2: Power Query
Импортируйте данные через ДАННЫЕ → Получить данные → Из таблицы/диапазона, затем:
- Добавьте пользовательский столбец для доли в выручке:
= [Выручка] / List.Sum([Выручка]) * 100. - Сортируйте по убыванию выручки.
- Добавьте индексный столбец и рассчитайте кумулятивную долю.
- Примените условные столбцы для ABC/XYZ-групп.
Преимущество Power Query: при обновлении исходных данных достаточно нажать "Обновить все", и все расчёты пересчитаются автоматически.
ФАЙЛ → Параметры → Формулы → Вычисления в книге: Вручную. Включайте пересчёт только после завершения редактирования (клавиша F9).-->
FAQ: Ответы на частые вопросы
Как интерпретировать сегмент BZ?
Товары группы BZ имеют средний вклад в выручку (5–15%) и высокий разброс спроса (>65%). Это "проблемные" позиции, требующие глубокого анализа:
- Проверьте логистику: возможно, сбои в поставках вызывают скачки спроса.
- Оцените маркетинг: промо-акции могут искусственно завышать вариативность.
- Проанализируйте конкурентов: если у них стабильный спрос на аналогичный товар, проблема в вашей стратегии.
Рекомендация: переведите часть товаров BZ в BY за счёт улучшения прогнозирования (например, с помощью ARIMA или машинного обучения).
Можно ли делать ABC-XYZ анализ по количеству продаж, а не по выручке?
Да, но это изменит интерпретацию результатов:
- 📦 ABC по количеству покажет самые ходовые товары (например, расходные материалы), но они могут быть низкомаржинальными.
- 💰 ABC по выручке выделит высокомаржинальные позиции, даже если их продаётся мало.
Оптимальный вариант — построить две матрицы и сравнить их. Например, товар может быть в группе AX по количеству и BY по выручке — это сигнал для пересмотра ценообразования.
Как учитывать вес или объём товаров в анализе?
Добавьте дополнительные метрики в сегментацию:
- Рассчитайте долю товара в общем весе или объёме запасов (аналогично доле в выручке).
- Постройте 3D-матрицу: ABC (выручка) × XYZ (стабильность) × WV (вес/объём). Например, сегмент AX-H — высокодоходные, стабильные и тяжёлые товары, для которых нужно оптимизировать логистику.
- Используйте сводные таблицы с несколькими полями значений (выручка, вес, объём).
Формула для доли в весе: = [Вес товара] / SUM([Вес всех товаров]) * 100.
Что делать, если в группе A оказалось слишком много товаров?
Это типичная проблема для бизнесов с широким ассортиментом. Решения:
- 🔧 Скорректируйте пороги: например, установите 70% для группы A, 20% для B, 10% для C.
- 📌 Добавьте второй критерий: сегментируйте группу A по маржинальности или оборачиваемости.
- 🔍 Исключите выбросы: товары с аномально высокой выручкой (например, разовые крупные сделки) могут искажать распределение.
Альтернативный подход — использовать ABC-анализ по Парето с логарифмической шкалой, который лучше работает с длинным хвостом ассортимента.
Как обновлять анализ при добавлении новых данных?
Способы автоматизации:
- 🔄 Power Query: настройте запрос так, чтобы он брал данные из динамического диапазона или внешнего источника (например, 1С или Google Sheets). Обновляйте одним кликом по кнопке "Обновить все".
- 📊 Сводные таблицы: свяжите их с исходными данными через "Изменить источник данных".
- 🤖 VBA-макрос: добавьте в код автоматическое определение последней строки:
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row.
Для ежемесячного анализа создайте шаблон с готовыми формулами и защитите структуру листа (РЕЦЕНЗИРОВАНИЕ → Защитить лист).