Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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))
Olá,
Você pode fazer assim:
Crie um campo flag na sua tabela de calendário.
- LET vHoje = Today();
- If(Data<='$(vHoje)',1,0) as FlgRealizado,
Crie 4 variáveis através do Menu Configuração > Visão Geral das Variáveis:
- vInicioYTDAtual => =Max({<FlgRealizado={1}>} Data)
- vFimYTDAtual => =YearStart(Max({<FlgRealizado={1}>} Data))
- vInicioYTDAnterior => =AddYears(Max({<FlgRealizado={1}>} Data),-1)
- 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.
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
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
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.
Estou usando assim.
=num(year(max(addmonths(DATA_REFERENCIA,-12))), '####')
=num(Sum({$<ANO_REFERENCIA={$(Vanoanterior)}>} VALOR_BRUTO)/1000000, '#.##0' & 'M')
Não deu certo. para mim
Não existe como fazer a expressão direta igual ao do Mês?
Olá,
Você pode fazer assim:
Crie um campo flag na sua tabela de calendário.
- LET vHoje = Today();
- If(Data<='$(vHoje)',1,0) as FlgRealizado,
Crie 4 variáveis através do Menu Configuração > Visão Geral das Variáveis:
- vInicioYTDAtual => =Max({<FlgRealizado={1}>} Data)
- vFimYTDAtual => =YearStart(Max({<FlgRealizado={1}>} Data))
- vInicioYTDAnterior => =AddYears(Max({<FlgRealizado={1}>} Data),-1)
- 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.
Variavel:VanoAnterior =num(year(max(addmonths(DATA_REFERENCIA,-12))), '####')
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.