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

Gráfico de barras comparando valores em % com o mes anterior.

Pessoal boa  tarde,

Alguma ideia / Luz / melhor maniera /melhor prática etc.. sobre fazer um gráfico de barras mostrando a evolução mensal de uma determinado dado?

Hoje tenho o a dimensão Month e a dimensão Item, juntamente com a expressão Valeu ( Count([Invoice ID]) ), gostaria de comprar um gráfico de barras a variação dos itens com referencia ao mês anterir.

MonthsItem AItem BItem C
Jun116220511931
Jul99025802559
Aug93628772744
Sep91822382296
Oct76126852610

Para terntar ser mais claro, quero comparar os valores da expressão do item A comparando o mês de Jul com o mês de Jun, o mesmo para os 03 itens (A,  B,  e C). E o mesmo para os meses seguintes comparando sempre com o mês anterior.

Alguém afim de partilhar suas experiencia com essa situação ?


Desde já agradeço

1 Solution

Accepted Solutions
Not applicable
Author

Desculpe, eu cometi um erro na expressão que coloquei, veja:

((Sum({<Item = {'A'}>} Valor) / Above(Sum({<Item = {'A'}>} Valor), -1)) - 1) * 100

Troque o valor sublinhado -1 por 1 que irá funcionar.

Para pegar o mês anterior com o Above() neste caso use 1 e não -1.

View solution in original post

8 Replies
srchagas
Creator III
Creator III

Boa tarde Weslley,

Encontrei um tópico na comunidade que semelhante a sua duvida, ve se ajuda:

http://community.qlik.com/thread/60481

Not applicable
Author

Considerando que no seu gráfico a dimensão seja o campo 'Months' sua expressão poder ser definida como:

( ([expressão item_A] / Above([expressão item_A], -1) ) - 1 ) * 100

A função Above(x, -1) retorna o valor x da dimensão com valor anterior a atual, neste caso o mês anterior.

Considerando [expressão item_A] do mês junho = 135 e [expressão item_A] do mês de julho = 98 temos:

( (98 / 135) -1 ) * 100

(0,726 - 1) * 100

-0,274 * 100 = -27,4

Ou seja, no mês de julho comparado à junho o rendimento foi de -27,4%.

Acho que é mais ou menos isso que você quer e é assim que eu uso.

Quaquer dúvida coloca ae.

Abraço!

Not applicable
Author

Thiago Cunha, obrigado, no link indicado tenho ( http://community.qlik.com/thread/60481 ) é um calculo no script, gostaria de fazer o calculo no proprio gráfico, além do que no script me limito tendo a comparação apenas do mês corrente. // data ( AddMonths ( max ( PERÍODO ), -1))

Para o calculo no gráfico criei a expressão  Sum(TOTAL <[Month Name]>Value) que tenho o total no mês corrente, e Above(Sum (TOTAL <[Month Name]>Value)) que tenho o total do mês anterior.

apartir das expressoes fiz o calculo ((mês  / mês anterior ) - 1 ) *100  aqui tenho o caculo em % da variação

// (((Sum(TOTAL <[Month Name]>Value))/(Above(Sum (TOTAL <[Month Name]>Value))))-1)*100

O problema é que se adciono as dimensões Itens não faz calulo.

E ainda, se crio 02 expressões mês  / mês anterior  e habilito a opções  relativo do QlickViw (%) da diferença entre os valores calculado manualmente ( //  (((Sum(TOTAL <[Month Name]>Value))/(Above(Sum (TOTAL <[Month Name]>Value))))-1)*100 ).

Not applicable
Author

Rafael Neiva boa tarde,

è isso que eu desejo, e cheguei nesse ponto conforme mencionado acima.

A expressão final é a abaixo:

/ / ((Sum ((TOTAL <[Nome do Mês]> Valor)) / (Above (Sum (TOTAL <[Nome do Mês]> Valor)))) -1) * 100

Porem gostaria de adcionar uma Dimensão pelo campo Item de forma a obter a variação por Item.

Quando adciono o item os gráficos zeram.

Veja as imagens abaixo:

Sem a dimensão itens:

SemDimensaoItens.png

Com a dimensão itens adcionada:

ComDimensaoItens.png

Desde já agradeço a todos

Not applicable
Author

Eu acho que entendi o que você deseja. Você pode usar o Set Analysis para cada uma das suas expressões, assim você soma o valor de cada item individualmente.

Estou enviando um exemplo pra você.

Se não for o que você deseja, detalhe mais aqui que nós damos um jeito.

Not applicable
Author

Rafael seu exemplo me ajudou muito, porem tenho algumas dúvidas.......

Observe a variação do Item A de Feb comparado a Jan que tem a variação de - 33,33.

O correto seria 0 e esta setado como -33,33, este item não teve variação do mês de jan para o mês de feb.

MêsItemValor
2012-01-01A10
2012-02-01A10

Implementei seu código de Expressões no meu script, deu certo, mas estou achando diferenças entre os valores, conforme apontado acima.

((Sum({<Item = {'A'}>} Valor) / Above(Sum({<Item = {'A'}>} Valor), -1)) - 1) * 100

Ps: Observe também que o mês de Jan 2012 não deveria trazer variações, pois não se tem dado do mês anterior para se calcular (dez 2011).

Mais uma vez obrigado.

Not applicable
Author

Desculpe, eu cometi um erro na expressão que coloquei, veja:

((Sum({<Item = {'A'}>} Valor) / Above(Sum({<Item = {'A'}>} Valor), -1)) - 1) * 100

Troque o valor sublinhado -1 por 1 que irá funcionar.

Para pegar o mês anterior com o Above() neste caso use 1 e não -1.

Not applicable
Author

Correto , também não tinha me atentado a este detalhes.

Muito obrigado.