Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
fabio_vallone
Creator
Creator

Market Basket Analysis

Colegas, bom dia! Tudo bem?

Estou procurando a best practice para fazer uma análise semelhante àquelas feitas em Mercado, do tipo "quais produtos saem em conjunto no mesmo cupom" (market basket analysis).

No meu script, carregando a tabela uma única vez, ao selecionar o produto A, eu vou na dimensão dos "cupons", seleciono os possíveis, volto e desmarco a seleção de A; desta forma eu analiso "tudo que saiu nos cupons onde houve aparição do produto A". Funciona, mas gostaria de saber se existe uma forma mais simples/eficiente de fazer esta análise.

Pensei em carregar a tabela "duas vezes", renomeando todos os campos da segunda carga, deixando somente o Cupom como chave entre elas; assim, ao marcar o produto A na primeira tabela, terei selecionado, da segunda tabela, todos os cupons onde o item A apareceu (inclusive o próprio A, mas isto não tem problema).

Porém, isto significa carregar "duas vezes" a tabela cheia (e é uma tabela muito grande e cheia de dimensões selecionáveis).

Seria esta a melhor prática para tratar este tipo de análise, ou há uma solução mais sofisticada? Pesquisei alguns posts sobre usar as expressões P() e E() em Set Analysis, mas elas resolveriam mesmo que eu tenha muitas dimensões selecionáveis na tabela?

Desde já agradeço.

Fabio.

Labels (3)
1 Solution

Accepted Solutions
fernando_tonial
Employee
Employee

Olá Fabio,

Tenho esses exemplos que podem ser úteis.

Um utiliza a função P() do Set Analysis.

Count({1<NomeProduto={'$(vProduto1)'}>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>})>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>}) * P({1<NomeProduto={'$(vProduto2)'}>})>} PedidoID)

O outro faz em Script.

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.

View solution in original post

2 Replies
fernando_tonial
Employee
Employee

Olá Fabio,

Tenho esses exemplos que podem ser úteis.

Um utiliza a função P() do Set Analysis.

Count({1<NomeProduto={'$(vProduto1)'}>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>})>} PedidoID)

Count({1<PedidoID=P({1<NomeProduto={'$(vProduto1)'}>}) * P({1<NomeProduto={'$(vProduto2)'}>})>} PedidoID)

O outro faz em Script.

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.
fabio_vallone
Creator
Creator
Author

Tonial, entendi sua lógica, recupero o produto por variável e passo ele em Set Analysis para compor todos os possíveis cupons relacionados. Muito bom! Acredito que assim já resolve meu problema, e mantém o script leve.

Obrigado!