ABC/XYZ-анализ товаров: расчёт, матрица и решения
Считаем вклад восьми товаров в продажи и разброс их количества по месяцам. Показываем, как получить группы AX–CZ и какие проверки нужны перед решением по ассортименту.
Два товара могут давать большую сумму продаж по разным причинам. Один покупают каждый месяц, другой попал в крупный разовый заказ. ABC выделит оба по вкладу, а XYZ поможет увидеть различие в разбросе. После этого можно проверить причину и выбрать действие, не принимая буквы в таблице за готовое решение.
Сначала выберите смысл показателей
Для ABC подходит один заранее выбранный показатель: сумма продаж, количество или иной измеримый вклад. ABC по сумме и ABC по валовой прибыли отвечают на разные вопросы. Если лидер по обороту почти не приносит прибыли, его группа по другому показателю может измениться.
В этой статье ABC строится по условной сумме продаж в рублях: количество умножается на постоянную цену. XYZ — по количеству в штуках за одинаковые месячные интервалы. Поэтому первая буква описывает денежный вклад, вторая — разброс количества. Все значения вымышлены; цены заданы без налогов и возвратов для простоты арифметики.
Один SKU или вариант товара должен иметь стабильный идентификатор. Не объединяйте разные позиции по похожему названию. Разные валюты сначала приводят к согласованной базе, а количество в штуках не складывают с килограммами как один показатель.
Учебные данные: 8 товаров и 6 месяцев
М1–М6 — шесть завершённых условных месяцев, а не реальная статистика TrueTell или клиента. В каждом месяце есть подтверждённое количество, включая нули. Восемь товаров дают суммарно 159 400 ₽.
| SKU | М1 | М2 | М3 | М4 | М5 | М6 | Цена, ₽ |
|---|---|---|---|---|---|---|---|
| T01 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
| T02 | 60 | 70 | 80 | 90 | 100 | 80 | 80 |
| T03 | 0 | 0 | 0 | 200 | 0 | 0 | 150 |
| T04 | 20 | 21 | 19 | 20 | 20 | 20 | 100 |
| T05 | 10 | 12 | 15 | 18 | 20 | 15 | 100 |
| T06 | 0 | 0 | 20 | 0 | 10 | 0 | 200 |
| T07 | 5 | 5 | 5 | 5 | 5 | 5 | 100 |
| T08 | 0 | 0 | 0 | 0 | 0 | 10 | 100 |
Скачать исходные данные CSV · Скачать результаты расчёта CSV. Это файлы учебного примера, не выгрузки из приложения. Кодировка UTF-8, разделитель — точка с запятой; при импорте проверьте типы столбцов.
Для своих данных сохраните период, шаг времени, состав SKU, валюту и правила учёта возвратов. Неполный месяц, смена единицы измерения или пропавшие строки могут изменить классы сильнее, чем выбранный порог. Шесть месяцев здесь показывают арифметику, но не задают универсальную длину истории для бизнеса.
ABC-анализ: ранжирование по вкладу
Для каждого товара сложите количество за шесть месяцев и умножьте на цену. Доля товара равна его сумме, делённой на 159 400 ₽ и умноженной на 100%. Затем отсортируйте строки по убыванию суммы; при равенстве используйте стабильный SKU.
В нашем варианте класс определяется по накопленной доле до добавления строки: меньше 80% — A; от 80% до значения меньше 95% — B; с 95% — C. Товар, который пересекает порог, завершает прежний класс. Это правило нужно записать: классификация по доле после добавления может дать другой результат.

| SKU | Сумма, ₽ | Доля | Накоплено после | ABC |
|---|---|---|---|---|
| T01 | 60 000 | 37,64% | 37,64% | A |
| T02 | 38 400 | 24,09% | 61,73% | A |
| T03 | 30 000 | 18,82% | 80,55% | A |
| T04 | 12 000 | 7,53% | 88,08% | B |
| T05 | 9 000 | 5,65% | 93,73% | B |
| T06 | 6 000 | 3,76% | 97,49% | B |
| T07 | 3 000 | 1,88% | 99,37% | C |
| T08 | 1 000 | 0,63% | 100,00% | C |
Перед T03 накоплено 61,73%, поэтому он получает A и доводит группу до 80,55%. Следующий T04 уже относится к B. Аналогично T06 завершает B на 97,49%, после него начинаются товары C. Пороги 80/95% здесь не означают, что группы обязаны закончиться ровно на этих значениях.
Классы назначают по неокруглённым значениям. В таблице проценты показаны с двумя знаками для чтения. Если выбранная денежная база содержит нулевые или отрицательные результаты, разберите их отдельно: отрицательная доля ломает обычную интерпретацию положительного вклада.
XYZ-анализ: коэффициент вариации
Для количества по месяцам найдите среднее и стандартное отклонение. В примере используем все шесть значений как завершённое описываемое окно: стандартное отклонение считается с делителем n = 6. Коэффициент вариации в процентах: CV = стандартное отклонение / среднее × 100%.
Для T02 среднее равно 80 шт., стандартное отклонение — примерно 12,91 шт., CV — 16,14%. По выбранным границам X: CV ≤ 10%; Y: 10% < CV ≤ 25%; Z: CV > 25%. Значит, T02 получает Y. Это настройки нашего примера, не универсальный стандарт.
В Excel для количества в B2:G2 формула =STDEV.P(B2:G2)/AVERAGE(B2:G2)*100 вернёт CV числом в процентах. Не применяйте к этому результату ещё и процентный формат: множитель 100 уже учтён. Для суммы при цене в H2 используйте =SUM(B2:G2)*H2. Названия функций приведены для английской версии Excel; локализация может отличаться.
| SKU | Среднее, шт. | Отклонение, шт. | CV | Группа |
|---|---|---|---|---|
| T01 | 100,00 | 0,00 | 0,00% | AX |
| T02 | 80,00 | 12,91 | 16,14% | AY |
| T03 | 33,33 | 74,54 | 223,61% | AZ |
| T04 | 20,00 | 0,58 | 2,89% | BX |
| T05 | 15,00 | 3,37 | 22,44% | BY |
| T06 | 5,00 | 7,64 | 152,75% | BZ |
| T07 | 5,00 | 0,00 | 0,00% | CX |
| T08 | 1,67 | 3,73 | 223,61% | CZ |
Нулевой месяц учитывается как 0, если отсутствие продаж подтверждено. Пустая ячейка — это неизвестное значение: Excel может исключить её из расчёта. Если все шесть месяцев равны нулю, CV не определён из-за деления на ноль; такую позицию оставляют вне XYZ и разбирают отдельно. При очень малом среднем CV чувствителен к небольшим изменениям.
Не подменяйте в соседнем отчёте STDEV.P на STDEV.S без оговорки: выборочное отклонение с делителем n − 1 даст другую величину. Здесь рассчитывается разброс наблюдённых шести месяцев, а не точность прогноза будущего спроса.
Совместите классы в матрицу ABC/XYZ
Для каждого SKU соедините две буквы. T01 — AX: высокий вклад и ровный ряд. T03 — AZ: высокий вклад, но вся продажа пришлась на один месяц. Одинаковая группа A сама по себе не объясняет, стоит ли поддерживать для них одинаковый запас.

| Группа | Что видим в выбранном окне | Что проверить перед действием |
|---|---|---|
| AX | Большой вклад, небольшой разброс | Проверить доступность товара и причины возможных перебоев. |
| AY | Большой вклад, умеренный разброс | Разобрать тренд, сезон и акции до изменения плана. |
| AZ | Большой вклад, сильный разброс | Проверить разовые заказы и зависимость от отдельных покупателей. |
| BX | Средний вклад, небольшой разброс | Сравнить условия поставки и расходы на поддержание позиции. |
| BY | Средний вклад, умеренный разброс | Выделить повторяющиеся факторы и проверить следующий период. |
| BZ | Средний вклад, сильный разброс | Проверить, нужен ли запас или возможна работа под заказ. |
| CX | Небольшой вклад, небольшой разброс | Проверить роль товара в ассортименте и сопутствующих продажах. |
| CY | Небольшой вклад, умеренный разброс | Проверить сезонность и достаточность истории. |
| CZ | Небольшой вклад, сильный разброс | Разобрать каждую позицию: новинка, редкий заказ, дефицит или кандидат на вывод. |
Срок поставки, минимальная партия, маржа, доступность замены и роль товара в комплекте в буквах не зашифрованы. Матрица задаёт вопросы для разбора; параметры закупки или решение о выводе позиции требуют дополнительных данных.
Когда высокий разброс требует объяснения
T03 мог попасть в Z из-за разового крупного заказа, сезонного пика или акции. По шести числам эти причины не различить. Для сезонных товаров сравнивайте сопоставимые фазы сезона и проверяйте более длинную историю, прежде чем называть спрос непредсказуемым.
Отгрузки показывают реализованные продажи. Если товар отсутствовал на складе, ноль может отражать дефицит, а не отсутствие спроса. Проверьте остатки и доступность товара, дату появления новинки и ограничения канала. Не заполняйте недоступную историю новинки нулями как подтверждённое отсутствие спроса.
Вклад в сумму также не равен доходности. Для МойСклад правила анализа продаж и прибыльности разбираем в статье об отчётах. Сначала согласуйте исходный показатель, затем сравнивайте классы между периодами на тех же условиях.
Что можно сделать в приложении «ABC анализ товаров и клиентов»
Если продажи ведутся в Битрикс24, приложение TrueTell «ABC анализ товаров и клиентов» помогает получить рейтинги товаров и клиентов, ABC-классы, динамику и экспорт с детализацией до сделок. Для ABC товаров используется сумма допустимых товарных строк. Успешная CRM-сделка при этом не подтверждает оплату и не становится бухгалтерской выручкой.

В подтверждённом наборе приложения нет XYZ, складских остатков, закупок, маржи и прогнозирования. Готовую помесячную XYZ-матрицу из него здесь не обещаем. Для отдельного расчёта нужна проверенная таблица количества по одинаковым интервалам, как в учебном файле.
Как превратить анализ в рабочее решение
Сохраните условия
Метрика ABC, интервалы XYZ, границы, правило пороговой строки, период и состав SKU.
Объясните выбранную позицию
Проверьте сезон, разовый заказ, наличие, запуск товара и качество исходных данных.
Назовите действие и ответственного
Сначала конкретная проверка или изменение для товара; затем срок и показатель результата.
Сравните следующий период
Используйте сопоставимые условия и отметьте, что изменилось в ассортименте или канале.
Начните с нескольких важных SKU, по которым можно проверить причины. Стабильный способ расчёта и понятное объяснение перехода между группами полезнее, чем частая смена порогов ради удобной картины.
Вопросы об ABC/XYZ-анализе товаров
В чём разница между ABC- и XYZ-анализом?
ABC ранжирует товары по вкладу в выбранный показатель: например, сумму продаж. XYZ описывает относительный разброс продаж или потребления по одинаковым интервалам. Совместная группа показывает обе характеристики, но не заменяет проверку причин и условий поставки.
Пороги 80/95% и 10/25% обязательны?
Нет. Здесь 80 и 95% выбраны для ABC, а 10 и 25% — для XYZ в учебном примере. Настройки и способ обработки товара на границе нужно записывать. В других системах и категориях могут использоваться другие пороги.
Почему товар T03 попал в A, хотя накопленная доля уже 80,55%?
В примере класс определяется по накопленной доле до добавления товара. Перед T03 она равна 61,73%, поэтому он остаётся в A и завершает эту группу. Следующий товар уже относится к B. При другом правиле границы состав групп может отличаться.
Как учитывать месяцы без продаж?
Подтверждённый месяц без продаж записывают числом 0. Пустая ячейка означает отсутствие данных и требует проверки: Excel может пропустить её при расчёте. Если весь ряд равен нулю, среднее равно нулю и CV не определён; такую позицию рассматривают отдельно от XYZ.
Сколько месяцев нужно для XYZ?
Единого срока для всех товаров нет. Интервалы и длина истории должны соответствовать циклу продаж. Шесть месяцев в статье нужны для учебного расчёта; они не позволяют сами по себе оценить годовую сезонность. Новинки и товары с неполной историей разбирают отдельно.
Товар CZ нужно убрать из ассортимента?
Класс CZ — повод для проверки. Малый вклад и сильный разброс могут объясняться редкими заказами, дефицитом, недавним запуском или ролью сопутствующего товара. До решения нужны данные о наличии, марже, поставках и назначении позиции.
Можно ли считать ABC по количеству, а XYZ по деньгам?
Это возможно как отдельно заданная методика, но смысл матрицы изменится. В статье ABC считается по условной сумме продаж, XYZ — по количеству в штуках. Нельзя незаметно менять показатель или складывать разные валюты и единицы измерения.
Строит ли «ABC анализ товаров и клиентов» XYZ-матрицу?
В приложении есть ABC-анализ товаров и клиентов по данным CRM, динамика и экспорт. XYZ, складские остатки, закупки, маржа и прогнозирование в подтверждённый набор не входят. Расчёт XYZ в статье — самостоятельная методика на учебных данных.
Методика и продуктовые ограничения проверены 23 октября 2026 года. Расчёт выполнен на вымышленных данных; клиентская CRM при подготовке статьи не использовалась.