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

Diferença do ano anterior com ano atual

Eu precisava fazer a diferença do ano anterior com o ano atual isso eu consigo usando Column(1) - Above(Column(1)), só que como eu faço para o ultimo ano(2012) que hoje vai até agosto, comparar com o mesmo periodo do ano de 2011, só q  o ano de 2011 vai comparar comparar com 2010 todos os meses, não só até agosto, alguem teria alguma dica?

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.

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)"}, Mês=, Ano=>} Venda_Liquida)

YTD Anterior

Sum({<Data={">=$(vInicioYTDAnterior)<=$(vFimYTDAnterior)"}, Mês=, Ano=>} Venda_Liquida)

Fazendo assim sempre para o cada ano será a maior data do ano, no caso de 2012 será 16/08/2012 e 2011 será 31/12/2011.

Espero ter ajudado.

Abraços.

Tonial.

Don't Worry, be Qlik.

View solution in original post

3 Replies
edu_oliveira
Partner - Contributor III
Partner - Contributor III

Ishimada, bom dia.

Poderia resolver utilizando Set Analisys e if simples em sua fórmula, mais ou menos assim:

if(CampoAno <> year(today()),

     Column(1) - Above(Column(1)),

     sum({<CampoAno = {=year(today())} CampoValor) - sum({<CampoAno = {=year(today())-1,} ,CampoMes = {<=month(today()} CampoValor)

)

Dá apenas uma conferida na sintaxe do Set analisys.

Att.,

Not applicable
Author

Oi Ishimada,

se deseja obter o resultado como expressão de um objeto do tipo gráfico acredito que possa fazer assim:

Para ano atual (2012)

definição da expressão: Sum (IF (Year(Today()) = [Ano da Data], [Valor Pago],0))

rótulo da expressão: ='Valor em ' & Year(Today())

Para ano anterior (2011)

definição da expressão: Sum (IF ( (Year(Today()) -1) = Interval([Ano da Data]), [Valor Pago],0))

rótulo da expressão: = 'Valor em ' & (Year(Today()) -1)

obs.: A função interval formata a expressão como um intervalo de tempo

Espero que ajude.

Abs,

fernando_tonial
Partner - Specialist
Partner - Specialist

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)"}, Mês=, Ano=>} Venda_Liquida)

YTD Anterior

Sum({<Data={">=$(vInicioYTDAnterior)<=$(vFimYTDAnterior)"}, Mês=, Ano=>} Venda_Liquida)

Fazendo assim sempre para o cada ano será a maior data do ano, no caso de 2012 será 16/08/2012 e 2011 será 31/12/2011.

Espero ter ajudado.

Abraços.

Tonial.

Don't Worry, be Qlik.