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: 
fernandoicosta
Contributor III
Contributor III

Como contar o numero de clientes que atender uma regra "E"

Ola! estou tentando criar um contador de numero de clientes que atender a regra de compra de dois itens que são obrigatórios para ele ser considerado "positivado".

Seria mais ou menos conforme abaixo, mas esta dando erro:

Count (Distinct {$<Cod_produto={'20017'},Segmento_Cliente={'A','B'}>}Cod_Cliente) E

Count (Distinct {$<Cod_produto={'83778'},Segmento_Cliente={'A','B'}>}Cod_Cliente)

Desde já agradeço a atenção de quem puder me ajudar.

Help me !!!

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Fernando, bom dia.  Quem sabe

sum(aggr(if(

            rangesum(if(Count({<Produto={'A','B'}>} DISTINCT Produto)>=1,1),0)

            +

            rangesum(if(Count({<Produto={'C'}>} DISTINCT Produto)=1,1),0)

            +

            rangesum(if(Count({<Produto={'D','E'}>} DISTINCT Produto)>=1,1),0)

            =3,1)

        ,Cliente)

)

furtado@farolbi.com.br

View solution in original post

6 Replies
fernandoicosta
Contributor III
Contributor III
Author

Detalhe, eu preciso somar o numero de clientes que atenderem esta regra.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Fernando,  nao seria isto:

Count (Distinct {$<Cod_produto={'20017','83778'},Segmento_Cliente={'A','B'}>}Cod_Cliente)


Fiz um exemplo com clientes que compraram itens somente A e B e no meu exemplo seriam os clientes 1 e 4

2015-10-04 15_21_01.jpg


furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Fernando, se quiser o total de clientes pode usar esta expressao

sum(aggr(if(Count({<Produto={'A','B'}>} DISTINCT Produto)=2,1),Cliente))

Segue modelo com um objeto de texto com o total.

furtado@farolbi.com.br
fernandoicosta
Contributor III
Contributor III
Author

Alessandro, Ficou perfeito sua explicação pois era parte disso mesmo que estava procurando.

Mas faltou apenas um detalhe, no exemplo que coloquei acima, preciso tratar o cliente que comprou qualquer um dos itens "A,B", mas para ser positivado ele tem que comprar o item "C" também ou item "D,E".

sum(aggr(if(Count({<Produto={'A','B'}>} DISTINCT Produto)=2,1),Cliente)) and

sum(aggr(if(Count({<Produto={'C'}>} DISTINCT Produto)=1,1),Cliente)) and

sum(aggr(if(Count({<Produto={'D','E'}>} DISTINCT Produto)=2,1),Cliente))

Se a soma das três linhas for maior ou igual a 2, o cliente é positivado.

Neste caso poderia dar um valor 1 para cada linha e se o resultado for maior ou igual a 2, positivado.

Ainda estou sofrendo para chegar nesta função.

Grato mais uma vez pela sua ajuda.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Fernando, bom dia.  Quem sabe

sum(aggr(if(

            rangesum(if(Count({<Produto={'A','B'}>} DISTINCT Produto)>=1,1),0)

            +

            rangesum(if(Count({<Produto={'C'}>} DISTINCT Produto)=1,1),0)

            +

            rangesum(if(Count({<Produto={'D','E'}>} DISTINCT Produto)>=1,1),0)

            =3,1)

        ,Cliente)

)

furtado@farolbi.com.br
fernandoicosta
Contributor III
Contributor III
Author

Alessandro,

Obrigado pela sua resposta, fechou minha necessidade.

Forte abraço e boa semana !!!