Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Марта 23, 2019, 11:19:55 am

Автор Тема: И снова про АВС-анализ...  (Прочитано 181 раз)

Оффлайн Ивушка

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
И снова про АВС-анализ...
« : Марта 13, 2019, 03:13:28 pm »
Приветствую.
Пытаюсь реализовать таблицу с АВС-группировкой по результатом продаж.
Сразу скажу, что поискала готовые примеры и почитала по этой теме вообще. Примеры с aggr() пока не разбирала, потому что эту функцию не хотелось бы использовать, из-за больших массивов своих данных. Взяла, как показалось, пример попроще.

Итак. Создала сводную таблицу с измерением Товар и Выражением Sum([ПродСум]), отсортировала Товар по убыванию по Оси Y.
Для расчета накопительных сумм продаж попыталась воспользоваться формулой:
RangeSum(Above(Sum([ПродСум]), 0, RowNo()))
Но она не работает. Точнее, накопительную сумму-то считает, но не по убыванию продаж, потому что RowNo() наплевать на выбранную мной сортировку!
Вот что творит:

Код товара   "Сумма продаж"   "Накопительная сумма"   RowNo()   Вот так считает:
Товар 100      521047,43            925953,76                            4                  1+2+3+4
Товар 106      363806,02            1289759,78                           5                  1+2+3+4+5
Товар 115      254869,51            404906,33                            3                  1+2+3
товар 117      112562,69            112562,69                            1               
Товар 130      37474,13                 150036,82                           2                  1+2

Видно, что Сумму продаж упорядочил по убыванию, а Накопительную сумму считает в соответствии с RowNo(), который подчиняется какой-то другой сортировке (возможно, по умолчанию?).
К слову, если упорядочить Товары в алфавитном порядке, RowNo() дает нормальный порядок: 1,2,3 и т.д.

Попробовала брать не сводную таблицу с формулой, а прямую таблицу просто с накоплением по сумме продаж - тоже беда с сортировкой.

Но именно RangeSum() для АВС встречала часто в примерах, почему у меня-то не работает? Подскажите, пожалуйста. Ну или подскажите как можно реализовать иначе, желательно не сильно тормозными функциями...

Всем неравнодушным спасибо! )



Оффлайн millik

  • Наставник
  • **
  • Сообщений: 90
  • Страна: by
  • Рейтинг: +37/-0
    • Просмотр профиля
Re: И снова про АВС-анализ...
« Ответ #1 : Марта 19, 2019, 10:11:04 pm »
В агрегации лезть и не нужно.
Уже не раз рисовал ABC-анализ, поэтому с ходу подскажу своё типовое решение, которое я адаптирую под конкретные задачи.

1 колонка: Номер строки (тупо RowNo() )
2 колонка: Измерение анализа ( [Товар] )
3 колонка: Мера по которой считается нарастающий процент ( Sum([СуммаЧек]) )
4 колонка: % от мера ( Sum([СуммаЧек])/Sum(Total [СуммаЧек]) )
5 колонка: Накопленный % ( RangeSum(Above(Column(4)), Column(3)) )
6 колонка: Группа ( If(Column(4)<=$(vA)/100, 'A', If(Column(4)<=($(vB)+$(vA))/100, 'B', 'C')) )
7 колонка: Ранг в группе ( If(Column(5)=Above(Column(5)), RangeSum(Above(Column(6)), 1), 1) )

Это моя типовая заготовка таблицы, которую можно развивать дальше. Некоторые просят склеить Группу и Ранг в одно поле, кому-то не нужен накопленный процент или индивидуальный процент, кто-то просит дать возможность выбора меры или измерения и т.п.

И ещё. Есть один ВАЖНЫЙ нюанс для данного решения. Сортировка таблицы должна быть жестко зафиксирована: по убыванию результатов меры. Иначе все группы "поедут", т.к. не верно будет считаться накопленный, потому что используется функция Above().

ПС
На оптимальность решения не претендую. Возможно есть другие варианты.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1274
  • Страна: ru
  • Рейтинг: +136/-0
    • Просмотр профиля
Re: И снова про АВС-анализ...
« Ответ #2 : Марта 21, 2019, 07:55:50 am »
Посмотрите материал от коллеги
https://qliksense.ivan-shamaev.ru/abc-advance-analysis-sortable-aggr-by-2-dimensions/

Неофициальный форум пользователей QlikView & Qlik Sense

Re: И снова про АВС-анализ...
« Ответ #2 : Марта 21, 2019, 07:55:50 am »

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 90
  • Страна: by
  • Рейтинг: +37/-0
    • Просмотр профиля
Re: И снова про АВС-анализ...
« Ответ #3 : Марта 21, 2019, 10:08:07 am »
Посмотрите материал от коллеги
https://qliksense.ivan-shamaev.ru/abc-advance-analysis-sortable-aggr-by-2-dimensions/

Спасибо.
Мои ещё не додумались анализировать АВС в динамике, но на будущее сохранил =)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1274
  • Страна: ru
  • Рейтинг: +136/-0
    • Просмотр профиля
Re: И снова про АВС-анализ...
« Ответ #4 : Марта 21, 2019, 01:19:04 pm »
В динамике совершенно другой взгляд.
Пришел к тому, что многие расчеты перевел в скрипты и анализ в динамике.
Т.к. использование расчета по скользящим на больших данных просто нереален.
И АБС и сегментация очень интереса, особенно при анализе в долях четко отслеживается влияние каких-то событий.

Неофициальный форум пользователей QlikView & Qlik Sense

Re: И снова про АВС-анализ...
« Ответ #4 : Марта 21, 2019, 01:19:04 pm »