Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

Ano anterior vs Ano atual (Proporcional) (Sem Filtros)

Tenho esta expressão que me ajuda na me retornar o mês anterior. Proporcional ao Mês atual.

Funciona 100% (Sem Filtros)

Sum({$<data = {'>=$(=Monthstart(addmonths(Today(),-2)))<=$(=addmonths(Today(),-2))'},[operacao]={'V'} >}valor)

Como faço com o Ano a Mesma expressão ano anterior ( (Sem Filtros))

Neves
1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Você pode fazer assim:

Crie um campo flag na sua tabela de calendário.

  1. LET vHoje = Today(); 
  2.  
  3. If(Data<='$(vHoje)',1,0)                              as FlgRealizado,

Crie 4 variáveis através do Menu Configuração > Visão Geral das Variáveis:

  1. vInicioYTDAtual => =Max({<FlgRealizado={1}>} Data) 
  2. vFimYTDAtual => =YearStart(Max({<FlgRealizado={1}>} Data)) 
  3. vInicioYTDAnterior => =AddYears(Max({<FlgRealizado={1}>} Data),-1) 
  4. vFimYTDAnterior => =YearStart(AddYears(Max({<FlgRealizado={1}>} Data),-1)


Faça assim as duas expressões assim: YTD Atual

Sum({<Data={">=$(vInicioYTDAtual)<=$(vFimYTDAtual)"}, [operacao]={'V'} , Mês=, Ano=>} Valor)


YTD Anterior

Sum({<Data={">=$(vInicioYTDAnterior)<=$(vFimYTDAnterior)"}, [operacao]={'V'} , Mês=, Ano=>} Valor) 

Fazendo assim sempre para o cada ano será a maior data do ano, no caso de 2016 será 05/02/2016 e 2015 será 05/02/2015

Espero ter ajudado.

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.

View solution in original post

8 Replies
fabionakashigue
Partner - Creator
Partner - Creator

Agnaldo,

Segue:

Sum({$<data = {'>=$(=YearStart(AddYears(Today(),-1)))<=$(=AddYears(Today(),-1))'},[operacao]={'V'} >}valor)

Ps: Lembre-se que na sua expressão informada, você deve trocar para -1 caso queira o mês anterior.

Abs

cesaraccardi
Specialist
Specialist

Ola Agnaldo,

A funcao addmonths() e usada para calcular datas, o segundo parametro "-2" corresponde ao numero de meses que voce deseja calcular, negativo significa periodo anterior. Se voce substituir -2 por -12 estara calculando 12 meses atras ou seja um ano.

Abracos,

Cesar

Ribeiro
Specialist
Specialist
Author

Cesar

Talvez não tenha explicando bem

Veja que o Mês atual e Mês anterior estão sem filtros.

Veja também que o ano de 2016 está sem filtro (ele soma o ano atual 2016)

O que eu quero é quer o Ano 2015 some até o periodo proporcional a este ano, igual ao mês.

Acima não existe nenhum filtro.

Coloque a expressão que eu fiz . Ano 2015 ficou errado ele não somou o periodo do ano passado proporcional ao periodo deste ano.

2016-02-05_12-32-13.png

Neves
Not applicable

Estou usando assim.

=num(year(max(addmonths(DATA_REFERENCIA,-12))), '####')

=num(Sum({$<ANO_REFERENCIA={$(Vanoanterior)}>} VALOR_BRUTO)/1000000,  '#.##0' & 'M')

Ribeiro
Specialist
Specialist
Author

Não deu certo. para mim

Não existe como fazer a expressão direta igual ao do Mês?

Neves
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Você pode fazer assim:

Crie um campo flag na sua tabela de calendário.

  1. LET vHoje = Today(); 
  2.  
  3. If(Data<='$(vHoje)',1,0)                              as FlgRealizado,

Crie 4 variáveis através do Menu Configuração > Visão Geral das Variáveis:

  1. vInicioYTDAtual => =Max({<FlgRealizado={1}>} Data) 
  2. vFimYTDAtual => =YearStart(Max({<FlgRealizado={1}>} Data)) 
  3. vInicioYTDAnterior => =AddYears(Max({<FlgRealizado={1}>} Data),-1) 
  4. vFimYTDAnterior => =YearStart(AddYears(Max({<FlgRealizado={1}>} Data),-1)


Faça assim as duas expressões assim: YTD Atual

Sum({<Data={">=$(vInicioYTDAtual)<=$(vFimYTDAtual)"}, [operacao]={'V'} , Mês=, Ano=>} Valor)


YTD Anterior

Sum({<Data={">=$(vInicioYTDAnterior)<=$(vFimYTDAnterior)"}, [operacao]={'V'} , Mês=, Ano=>} Valor) 

Fazendo assim sempre para o cada ano será a maior data do ano, no caso de 2016 será 05/02/2016 e 2015 será 05/02/2015

Espero ter ajudado.

Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.
Not applicable

Variavel:VanoAnterior =num(year(max(addmonths(DATA_REFERENCIA,-12))), '####')

Ribeiro
Specialist
Specialist
Author

Antes: Certo para mês

Sum({$<data = {'>=$(=Monthstart(addmonths(Today(),-2)))<=$(=addmonths(Today(),-2))'},[operacao]={'V'} >}valor)

Depois certo para o Ano:

Sum({$<data = {'>=$(=YearStart(addYears(Today(),-1)))<=$(=addYears(Today(),-1))'},[operacao]={'V'} >}valor)

Testei o valor e funcionou. Issó será preciso pois sera visto numa TV e precisará está sempre amostra.

A resposta do Fernando está correta.

Bom quando demorou um pouco. fui para dentro do help do qlik e procurei as expressões corresponde e fiz

assim acima.

Obrigado Fernando, testei a seu e também funcionou.

Mas já tinha quebrado a cabeça.

Neves