Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Apresentar preço com maior ocorrência

Estou tendo uma dificuldade, eu utilizo count para contar a quantidade de vezes que um preço aparece, de acordo com o filtro que é feito. Após isso eu preciso apresentar o preço com maior ocorrência,alguém poderia me ajudar?

1 Solution

Accepted Solutions
felipe_dutra
Partner - Creator
Partner - Creator

Leonardo,

Como dito pelo Aderlan, se dois ou mais valores tiverem a mesma máxima frequência o valor retornado pela função será nulo. E como o valor de 15,99 aparece 4 vezes, na mesma frequência do valor 15,90, a função retornou nulo.

Solução:

Para apresentar somente o máximo valor, dentre os que apresentaram maior frequência:

Max({<Preço={"=Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço)=$(=MAX(AGGR(Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço), Preço)))"}>}Preço)

E para apresentar os valores com maior frequência, de forma concatenada:

Concat(DISTINCT{<Preço={"=Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço)=$(=MAX(AGGR(Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço), Preço)))"}>}Preço, ' | ', -Preço)

Abs,

Felipe

View solution in original post

6 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

pode colocar um QVW de exemplo para entendermos melhor a solicitação.

Don't Worry, be Qlik.
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Leonardo, tudo bem?

Eu já fiz algo parecido para mostrar a frequência que os clientes são atendidos, acredito que seja a mesma lógica, correto?

Eu criei o calendário baseado na data de atendimento e fiz o "count" cliente, ou seja, assim pude criar diversas análises com essa métrica, inclusive uma tabela dinâmica para atendimentos por mês/ano com cliente nas linhas e mês/ano nas colunas, isso mostra a frequência de atendimento de cada cliente mês a mês, também pode ser usado um gráfico de dispersão etc.

No seu caso, acredito que possa obter o mesmo resultado colocando os preços nas linhas e o "tempo" nas colunas.

São muitas opções, sem dúvida um QVW de exemplo ajuda, como o Tonial sugeriu.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

segue exemplo do QVW.

Na 1 tabela o Moda Preço está vindo nulo, mas ele deveria apresentar o 1 valor que está aparecendo na Preço Top 5 Concorrente.

aderlanrm
Partner - Specialist
Partner - Specialist

Talvez o Fernando Tonial tenha entendido, eu não entendi qual informação você quer ter com o uso do Mode, mas segundo o manual: "Se mais de um valor ocorrer com a mesma freqüência, retornará NULL.", então se tem 4 ocorrências, por isso está retornando nulo.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
felipe_dutra
Partner - Creator
Partner - Creator

Leonardo,

Como dito pelo Aderlan, se dois ou mais valores tiverem a mesma máxima frequência o valor retornado pela função será nulo. E como o valor de 15,99 aparece 4 vezes, na mesma frequência do valor 15,90, a função retornou nulo.

Solução:

Para apresentar somente o máximo valor, dentre os que apresentaram maior frequência:

Max({<Preço={"=Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço)=$(=MAX(AGGR(Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço), Preço)))"}>}Preço)

E para apresentar os valores com maior frequência, de forma concatenada:

Concat(DISTINCT{<Preço={"=Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço)=$(=MAX(AGGR(Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço), Preço)))"}>}Preço, ' | ', -Preço)

Abs,

Felipe

fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Leandro,

Realmente o post do  fala exatamente o problema do Mode() e lhe dá a solução para o Maior Valor, mas pelo que entendi você quer o Menor Valor entre os de Maior Ocorrência.

Faça assim:

=Min({<Preço={"=Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço)=$(=MAX(AGGR(Count({<Preço={'>0'}, Fabricante = {'WJTEY'}>} Preço), Preço)))"}>}Preço)

Abraços.

Tonial.

Don't Worry, be Qlik.