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

Dúvida - Set Analysis - Venda de meses anteriores

Boa tarde.

Estou quebrando a cabeça em uma coisa que aparentemente é boba, mas não estou conseguindo fazer.

Possuo uma base de vendas. Quero montar uma tabela que mostre, por cliente, a venda dos dois últimos meses fechados, ou seja, quero exibir sempre a venda dos dois meses anteriores, usando Today() como parâmetro para definir o mês atual.

No load, criei um campo chamado "MesAno" usando a seguinte expressão: Date(Monthstart(DATA), 'MMM/YYYY') as MesAno

Depois, criei uma variável chamada "vMesAnt1", para definir o mês anterior, usando a seguinte expressão: Date(AddMonths(Today(),-1), 'MMM/YYYY')

Ao criar a Measure para calcular a venda do mês anterior, utilizei a seguinte expressão: sum( {$<MesAno={"$(vMesAnt1))"}>} VENDA )

Criei um KPI para exibir essa Measure, apenas como teste, e aparece 0 (zero).

Tentei jogar em uma tabela e o resultado é o mesmo... ZERO!

Já quebrei a expressão, para ver os valores.... Quando vou exibir o valor da variável "vMesAnt1", temos "nov/2018". O campo "MesAno" exibe o mesmo valor, "nov/2018".

Acredito que resolvendo o problema do mês - 1, funcione para o mês - 2...

Onde será que errei? Alguém pode, por favor, me ajudar? Já procurei a solução em outros posts mas as soluções sugeridas não funcionaram.

Desde já agradeço!

Abraços!

11 Replies
Gabriel_Fernandes
Contributor III
Contributor III

experimente colocar a variável assim: '$(vMesAnt1)'
sum( {$<MesAno={'$(vMesAnt1)'}>} VENDA )
Anonymous
Not applicable
Author

Oi Gabriel!

Já testei o que você sugeriu e, infelizmente, dá erro... Não aparece mais "0" (zero) e sim "-" (traço) após alterar a expressão.

De qualquer forma, agradeço pelo retorno!

Abraço!

Gabriel_Fernandes
Contributor III
Contributor III

Acredito que quando você faz um DATE(), você só altera a "apresentação" do campo.
ex: 01/01/2018 será demonstrado como 01/2018, então quando é feito o set analysis pela Variavel, apenas soma a data de hoje "TODAY()".

* Experimente então trocar o DATE() por MONTHNAME() no script e na variável.
michellysodre
Contributor III
Contributor III

Olá Daniel.

 

Verifique se atende o exemplo que desenvolvi com base no que pediu.

Anonymous
Not applicable
Author

Opa!

Muito obrigado pelo arquivo!

Quando abri no QLIK Sense, só vi a tabela sendo criada no LOAD. Ao abrir o arquivo, não encontrei nenhuma sheet, variável ou measure.

Mais uma vez, agradeço!

Abraço!

Daniel.

thiagopcleite
Contributor II
Contributor II

Bom dia Daniel,

Veja se nessa sua expressão não está sobrando um parenteses!
sum( {$<MesAno={"$(vMesAnt1))"}>} VENDA ) -> Tenta tirar esse parentese que esta em vermelho e vê se funfa!

 

maiconmello
Creator III
Creator III

Como o seu campo no banco de dados vem ? 

Quando vc da um Date(xxxx) apenas formato, mas não mexe internamente no tipo. Coloca a sua expressão os valores manual para testar. 

Sua Expressao:

sum( {$<MesAno={"$(vMesAnt1))"}>} VENDA )

Teste

sum( {$<MesAno={"01/2018"}>} VENDA ) veja se mostra valores. 

michellysodre
Contributor III
Contributor III

Daniel,

 

Não vi que estava utilizando o Sense, mandei um exemplo no qlikview

Mas usando aqueles dados que conseguiu carregar, o Set Analysis ficaria assim:

=SUM({<[data]={">=$(=AddMonths(Today(),-2))"}>}vlr)

rphpacheco
Creator III
Creator III

Bom dia Daniel!

Olhando rapidamente aos exemplos de implementação que vc fez, acredito que você tenha que chamar a sua variável passando um sinal de '='.

Exemplo: 

VAR = LET vMesAnt1 = Date(AddMonths(Today(),-1), 'MMM/YYYY');

MENSURE = Sum( {$<MesAno={'$(=vMesAnt1)'}>} VENDA );

Este sinal de '=' força o cálculo das expressões das quais compõem a variável vMesAnt1.

Ah, outra coisinha... na sua mensure, a chamada da variável tinha um parêntese a mais 😉

Forte abraço!