Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Orlando_Neto
Contributor II
Contributor II

Calculando Market Share em gráfico de barras

Olá pessoal,

Sou novo com o Qlik e estou precisando de uma ajuda para fazer um gráfico de barras calculando o market share de meus clientes. A ideia é que o gráfico fique desta maneira:

Orlando_Neto_3-1600704293913.png

 

Neste gráfico estão contidas as dimensões 'MES' e 'CLIENTE'. 

Calculo de medida está assim:
Sum({$<[Date.autoCalendar.Month]=, [Year+]={'0'} >}[Sales - Customers])/
Sum({$<[Date.autoCalendar.Month]=, [Year+]={'0'} >} Total [Sales - Customers])

Porem o resultado final não está como o esperado e esta saindo desta maneira:

Orlando_Neto_2-1600704260546.png

 

Alguém consegue me dar uma ajuda?

1 Solution

Accepted Solutions
RafaMartins
Creator II
Creator II

O problema está na utilização de duas dimensões com a função total, quando utilizada ela traz o valor do tal de todo a referencia de dados dimensionados  não sendo limitado por uma dimensão ou outra. Como você precisa da representatividade com relação ao total de cada mês utilizando o total não funcionaria.

RafaWilder_0-1600713574903.png

 O que pode ser feito é utilizar um if para cada mês  com a medida especifica para cada mês,

if(Mes= 'Jan', sum({<Mes={'Jan'}>}total valor)

assim você terá o valor total de cada mês para fazer a divisão.

RafaWilder_2-1600714112544.png

 

 

 

View solution in original post

7 Replies
TiagoCardoso
Creator II
Creator II

Boa tarde.

O que muitos colegas se queixam é que justamente essa data que vem do autocalendar não se dá muito bem com expressões SET, na maioria dos casos é isso apenas. 

Seu campo tem esta nomenclatura mesmo? - [Year+]

RafaMartins
Creator II
Creator II

O problema está na utilização de duas dimensões com a função total, quando utilizada ela traz o valor do tal de todo a referencia de dados dimensionados  não sendo limitado por uma dimensão ou outra. Como você precisa da representatividade com relação ao total de cada mês utilizando o total não funcionaria.

RafaWilder_0-1600713574903.png

 O que pode ser feito é utilizar um if para cada mês  com a medida especifica para cada mês,

if(Mes= 'Jan', sum({<Mes={'Jan'}>}total valor)

assim você terá o valor total de cada mês para fazer a divisão.

RafaWilder_2-1600714112544.png

 

 

 

Orlando_Neto
Contributor II
Contributor II
Author

O autocalendar só está mencionado para não mudar com os filtros da pasta, o campo Year+ é do meu banco mesmo. 

Orlando_Neto
Contributor II
Contributor II
Author

Entendi Rafa,

Realmente o 'total valor' esta pegando todo o valor do sum.

Você sabe se existe uma maneira de eu somar todo o valor da dimensão CLINTE? Desta maneira eu faria algo parecido com a expressão abaixo:

sum(Valor) /* que irá somar todo o valor do cliente no periodo */
/
Sum({$<[CLIENTE]=,>} Valor) /* que iria somar o valor total, independendo o cliente que está dimencionado no gráfico. */

 

RafaMartins
Creator II
Creator II

Como eu disse você precisa usar um if para cada mês e ter a dimensão de mes no gráfico e a de cliente para dar a cor da barra , dessa forma ficaria do jeito que vc exemplificou.

Orlando_Neto
Contributor II
Contributor II
Author

Sim, apliquei sua solução e deu certo, como sou muito newby, perguntei pois poderia ter uma outra maneira da qual eu não precisasse fazer 12 if's. Muito obrigado!

RafaMartins
Creator II
Creator II

Pode ser que tenha uma outra maneira más nada que me venha a mente agora