Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
henricklucena
Contributor II
Contributor II

Porcentagem de crescimento referente ao mês anterior

Bom dia Pessoal.

Estou com um problema que não consigo desenrolar.

Usando o gráfico de tabela, tenho que mostrar em porcentagem a variação para o mês anterior. 

Exemplo. o Usuário Iria selecionar Agosto,  a Aplicação iria retornar 4 meses pra frente e 4 pra trás, com a variação.

Em Dezembro vendemos 1.000 reais, em Novembro 500 reais, ou seja, teria que fazer uma comparação de Dezembro com Novembro e apresentar o resultado = 50%. Eu Tenho campo de valor, data, mês, mês_ano.

Agradeço desde já pela ajuda.

Labels (2)
1 Solution

Accepted Solutions
henricklucena
Contributor II
Contributor II
Author

Gui, bom dia.

Deu certo utilizando a seguinte expressão:

SUM({<[Mês/Ano]={"$(='>='&MonthStart(AddMonths("[Mês/Ano]",1))&' <='&MonthEnd(AddMonths("[Mês/Ano]",1)))"}, LOJA={"<500"}>}VALOR)
/
SUM({<[Mês/Ano]={"$(='>='&MonthStart(AddMonths("[Mês/Ano]",0))&' <='&MonthEnd(AddMonths("[Mês/Ano]",0)))"}, LOJA={"<500"}>}VALOR)-1

 

Obrigado pela ajuda.

View solution in original post

4 Replies
Gui_Approbato
Creator III
Creator III

Bom dia Henrick

Acho que o modo mais fácil é através do set anaylsis.. a expressão que vc vai ter é a de soma normal, e subtraindo o número de meses que você quer.. 

A normal seria Sum( valor) --> quando o mês estiver selecionado, vai retornar o valor do mês.

Para ter o valor do mês anterior, adicione a expressão para ficar assim:

Sum({<Mes={'$(=Mes-1)'}>}  valor)  --> Considerando que os meses estão em números, caso contrário utilize month(data).

 

Esse 1 da expressão significa 1 mês anterior.. Aí você pode fazer o crescimento utilizando as expressões separadamente.

Por exemplo, o crescimento de um mês para o outro seria:

(       Sum(valor) - Sum({<Mes={'$(=Mes-1)'}>}  valor)        )  /       Sum({<Mes={'$(=Mes-1)'}>}  valor)

 

Espero ter ajudado.

Abs

henricklucena
Contributor II
Contributor II
Author

Boa tarde Gui.

Primeiramente obrigado pelo retorno.

Referente a sua resposta, eu coloquei em prática, a expressão tá ok, porém o qliksense não está entendo a data.

Gui_Approbato
Creator III
Creator III

Ah sim.. o motivo é o seguinte:

Se a coluna Mês tem os dados no formato texto (como 'jan' ou 'janeiro', fevereiro, etc..) ele não vai entender..

Ele só vai entender se janeiro foi 1, fevereiro for 2, e assim por diante.

Se você quer uma solução mais 'rápida e fácil' (porém é meio gambiarra) faz isso: exporte uma sequência de todos os meses e ano existentes, de forma que fiquem em sequência (exemplo: janeiro-2016 , fevereiro-2016, março-2016 .. etc).

Fazendo isso, crie uma coluna com uma sequência numérica e importe de volta.

Ao fazer isso, você terá uma coluna relacionada com sequência numérica.

Exemplo:

Time_rank ; Mês/Ano
1 ; jun/2016
2 ; jul/2016
3 ; ago/2016
4 ; set/2016
5 ; out/2016
6 ; nov/2016
7 ; dez/2016
8 ; jan/2017

 

Aí você pode trocar naquela expressão, usando (neste exemplo acima) a coluna time_rank:

Sum({<Time_rank={'$(=Time_rank-1)'}>}  valor)

Se não ficou claro avise ai

henricklucena
Contributor II
Contributor II
Author

Gui, bom dia.

Deu certo utilizando a seguinte expressão:

SUM({<[Mês/Ano]={"$(='>='&MonthStart(AddMonths("[Mês/Ano]",1))&' <='&MonthEnd(AddMonths("[Mês/Ano]",1)))"}, LOJA={"<500"}>}VALOR)
/
SUM({<[Mês/Ano]={"$(='>='&MonthStart(AddMonths("[Mês/Ano]",0))&' <='&MonthEnd(AddMonths("[Mês/Ano]",0)))"}, LOJA={"<500"}>}VALOR)-1

 

Obrigado pela ajuda.