Анализ Кросс-продажи

Автор NG, 27 апреля 2016, 03:58:10

« назад - далее »

NG

Уважаемый администратор!
я просмотрела очень много материала, но не смогла решить такую задачу. Хотя есть что-то подобное на этом сайте в темах "Как создать таблицу перекрестных продаж в Qlikview?" от 08.01.2015 и "Выборка по принципу "И", Qlikview" от 22.03.2016  , но у меня более глобальное.
и возможно ли это будет реализовать в QlikSense?
есть такая таблица данных (это пример)
У задачи есть подводный камень ( ID_Chek не уникальный, но может повторятся у разных Sellers)
Необходимо найти все кросс-продажи в разрезе Продукта. (внизу таблица результата)

DateKKM       ID_Chek   ID_Product   Name_Product    ID_Sellers     ID_Market   Qty
01.02.2016   1 804   CB000001174   Брюки            Seller1     market4           1
01.02.2016   1 804   CB000001186   Рубашка белая    Seller1     market4           1
02.02.2016   1 808   CB000001174   Брюки            Seller1     market4   1
02.02.2016   1 811   CB000001186   Рубашка белая    Seller1     market4   1
02.02.2016   1 812   CB000001186   Рубашка белая    Seller1     market4   1
02.02.2016   1 812   CB000001226   Бабочка            Seller1     market4   1
03.02.2016   1 815   CB000001226   Бабочка            Seller1     market4   1
03.02.2016   1 819   CB000001247   ремень            Seller1   market4   1
03.02.2016   1 820   CB000001174   Брюки            Seller1   market4   1
03.02.2016   1 824   CB000001247   ремень            Seller1   market4   1
03.02.2016   1 824   CB000001174   Брюки            Seller1   market4   1
03.02.2016   1 824   CB000001186   Рубашка белая    Seller1   market4   1
03.02.2016   1 827   CB000001226   Бабочка            Seller1   market4   1
03.02.2016   1 829   CB000001310   Рубашка синяя    Seller1   market4   1
04.02.2016   1 814   CB000001174   Брюки            Seller2   market2   1
04.02.2016   1 816   CB000001174   Брюки            Seller2   market2   1
04.02.2016   1 821   CB000001174   Брюки            Seller2   market2   1
04.02.2016   1 821   CB000001310   Рубашка синяя    Seller2   market2   1
04.02.2016   1 821   CB000001247   ремень            Seller2   market2   1
05.02.2016   1 830   CB000001310   Рубашка синяя    Seller1   market4   1
05.02.2016   1 830   CB000001226   Бабочка            Seller1   market4   1
05.02.2016   1 832   CB000001226   Бабочка            Seller1   market4   1
05.02.2016   1 836   CB000001186   Рубашка белая    Seller1   market4   1
05.02.2016   1 837   CB000001174   Брюки            Seller1   market4   1
05.02.2016   1 837   CB000001310   Рубашка синяя    Seller1   market4   1
05.02.2016   1 837   CB000001247   ремень            Seller1   market4   1
05.02.2016   1 843   CB000001174   Брюки            Seller1   market4   1
05.02.2016   1 824   CB000001174   Брюки            Seller2   market2   1
05.02.2016   1 826   CB000001226   Бабочка            Seller2   market2   1
05.02.2016   1 827   CB000001247   ремень            Seller2   market2   1
06.02.2016   1 849   CB000001310   Рубашка синяя    Seller1   market4   1
06.02.2016   1 849   CB000001226   Бабочка            Seller1   market4   1
06.02.2016   1 849   CB000001174   Брюки            Seller1   market4   1
06.02.2016   1 849   CB000001186   Рубашка белая    Seller1   market4   1
06.02.2016   1 815   CB000001174   Брюки            Seller7   market3   1
06.02.2016   1 815   CB000001186   Рубашка белая    Seller7   market3   1
07.02.2016   1 855   CB000001226   Бабочка            Seller1   market4   1
07.02.2016   1 855   CB000001310   Рубашка синяя    Seller1   market4   1
07.02.2016   1 843   CB000001310   Рубашка синяя    Seller2   market2   1
07.02.2016   1 855   CB000001226   Бабочка            Seller2   market2   1
07.02.2016   1 857   CB000001310   Рубашка синяя    Seller2   market2   1
07.02.2016   1 857   CB000001226   Бабочка            Seller2   market2   1
07.02.2016   1 857   CB000001174   Брюки            Seller2   market2   1
07.02.2016   1 818   CB000001247   ремень            Seller7   market3   1
07.02.2016   1 820   CB000001226   Бабочка            Seller7   market3   1
08.02.2016   1 869   CB000001247   ремень            Seller2   market2   1
08.02.2016   1 829   CB000001174   Брюки            Seller7   market3   1
08.02.2016   1 830   CB000001174   Брюки            Seller7   market3   1
08.02.2016   1 831   CB000001247   ремень            Seller7   market3   1
08.02.2016   1 832   CB000001186   Рубашка белая    Seller7   market3   1
09.02.2016   1 833   CB000001186   Рубашка белая    Seller7   market3   1
09.02.2016   1 835   CB000001226   Бабочка            Seller7   market3   1
09.02.2016   1 835   CB000001310   Рубашка синяя    Seller7   market3   1
09.02.2016   1 837   CB000001226   Бабочка            Seller7   market3   1
10.02.2016   1 845   CB000001226   Бабочка            Seller7   market3   1
10.02.2016   1 847   CB000001174   Брюки            Seller7   market3   1
10.02.2016   1 847   CB000001247   ремень            Seller7   market3   1
10.02.2016   1 847   CB000001186   Рубашка белая    Seller7   market3   1
10.02.2016   1 864   CB000001186   Рубашка белая    Seller7   market3   1

Общее количество -это сколько раз вообще встречается ПродуктN  любом чеке(это не сложно).
Затем столбцы пересечений:
Когда пересечение ПродуктN=ПродуктN, значит Продукт продался один в чеке, посчитать кол-во.
Там где ПродуктN продавался с ПродуктZ  посчитать кол-во разов совместной продажи (попадания обоих в один чек).
процент  - это отношение текущего значения к общ. кол-ву

                  общ. кол-во     Брюки      Рубашка белая     Бабочка        ремень        Рубашка синяя   
Брюки           16                 8      50%   5   31%              2   13%        4     25%   4   25%
Рубашка белая   11                 5      31%   5   31%              2   13%        2     13%   1   6%
Бабочка           14                 2      13%   2   13%              8   50%        0      0%           5   31%
ремень           9                 4     25%   2   13%              0   0%        5     31%   2   13%
Рубашка синяя   9                 4    25%           1   6%              5   31%        2     13%   2   13%




Prive

Выложите исходные таблицы в excel файле.

NG

Вот файл Excell , но это пример ручной, хотя составлен по реальной базе. Сама база очень большая.

NG

Уважаемые профессионалы !

Дайте пожалуйста ответ, мою задачу можно решить в QlikView или QlikSense.


admin

Добрый день  :)
Краткий ответ - да можно.

Поподробнее, давайте после праздников вернемся к этому вопросу, ОК?

С праздником!

NG

Доброе утро.
И Вас с праздником!!!
Да конечно, буду ждать ответа.
С точки зрения программной логики, я  так думаю, что это должно быть два цикла, один в другом, которые пробегаются по списку Продуктов и делается подсчет(это как посчитать обороты земли вокруг себя и в тоже время вокруг солнца :-) ) . Но как это реализовать в Qlik вопрос?!

NG

Уважаемый администратор!

Ничем порадовать не можете по вопросу решения задачи?  ???

NG

М-да, задала я задачку. Ни у кого даже предложений нет по ее решению. Прям ахиллесова пята Qlik ;-)

admin

С добрым утром.
Задача на самом деле не такая сложная как может показаться.
Хотелось бы еще услышать какие варианты решений вы рассматривали.

Начнем рассуждения от итоговой таблицы.
Вполне очевидно, что одним измерением мы не обойдемся => нам необходимо изменить модель данных, т.е. добавив второе измерение Продукт2. Но с каким ключом?
В условии говорится, что ключ для продавцов может повторяться, значит вводим новый уникальный ID.
Как это сделать - на ваше усмотрение. Либо просто сцепить значения - ID_Chek&ID_Sellers as ID или же получить уникальную последовательность символов для каждого сочетания функцией hash128().
Теперь нам надо организовать нашу модель так, чтобы для каждого Продукта1 была связь с каждым Продуктом2. Для этого можно использовать объединение типа Outer Join.
Таким образом мы получим модель, с которой можно будет продолжить эксперименты и ответы на ваш вопрос.

NG

Спасибо за ответ.
Не все пока в голове представилось. Но буду пробовать.

admin

Привет, примерно так:

LOAD DateKKM,
     ID_Chek&ID_Sellers as ID ,
     ID_Product,
     Name_Product,
     ID_Sellers,
     ID_Market,
     Qty
FROM [для инет .xlsx] (ooxml, embedded labels, table is [Сhek KKM]);

Outer Join LOAD ID_Chek&ID_Sellers as ID ,
     Name_Product as Name_Product2
FROM [для инет .xlsx] (ooxml, embedded labels, table is [Сhek KKM]);

Яндекс.Метрика