Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
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?

Tags (1)
1 Solution

Accepted Solutions
felipe_dutra
Contributor

Re: Apresentar preço com maior ocorrência

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

6 Replies
fernando_tonial
Valued Contributor

Re: Apresentar preço com maior ocorrência

Olá,

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

aderlanrm
Valued Contributor

Re: Apresentar preço com maior ocorrência

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.

Not applicable

Re: Re: Apresentar preço com maior ocorrência

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
Valued Contributor

Re: Apresentar preço com maior ocorrência

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.

felipe_dutra
Contributor

Re: Apresentar preço com maior ocorrência

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
Valued Contributor

Re: Re: Re: Apresentar preço com maior ocorrência

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.