Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa noite pessoal,
Estou com uma dúvida:
Sabendo que a variação é o Mês Atual - Mês anterior, como posso achar a variação acumulada do ano anterior?
Obs.: Vale ressaltar que a variação de Janeiro/2012 (no caso) = Jan/2012 - Dez/2011
Agradeço desde já qualquer ajuda!
Olá amigo veja analise de conjunto no manual de referencia pag 380.
Ex:
Sum({$<Year={$(=Only(Year))}>} Sales) - Sum({$<Year={$(=Only(Year)-1)}>} Sales)
abs,
Marco
A expressão que o Marco colocou funciona, mas retorna a variação do valor do mes em relação ao mesmo mes do ano anterior.
Para retornar o mes anterior, considerando a questão do mes de janeiro, eu faria algo assim:
if (num(Mes) > 1,
sum(Valor) - sum({$<Mes = {$(=max(Mes)-1)}>} Valor),
sum(Valor) - sum({$<Mes = {12},Ano = {$(=max(Ano)-1)} >} Valor),
)
Para isso funcionar, teria que ter um Ano e um Mes selecionado.
Obrigado pela ajuda senhores.
Pelo que vi das soluções, não houve acúmulo das variações.
Quero o acúmulo da variação de cada mês, exemplo:
Jan/2011 - Dez/2010 = Var Jan
Fev/2011 - Jan/2011 = Var Fev
Mar/2011 - Fev/2011 = Var Mar
. .
. .
. .
Varicação Acumulada do Ano Anterior = Var Jan+ Var Fev+ Var Mar+ ...
Agradeço desde já.
Olá Edécio,
Acredito que a minha sugestão não seja muito diferente das anteriores, até porque este problema é bem específico e recorrente... Eu sugiro que você utilize um campo no formato mês/ano, se não tiver você pode criá-lo à partir de um campo com data completa (DD/MM/YYYY) assim:
Date(Data,'MMM/YYYY') as AnoMês
É interessante que este campo esteja formatado como data para facilitar os cálculos, assim você pode usar funções como "AddMonths" que já faria o cálculo do mês anterior a Jan/2012, por exemplo, sem que você precise verificar manualmente.
A expressão pode ser escrita de forma otimizada com o set analysis da seguinte maneira:
1-(sum({$<AnoMês={'$(=Only(AnoMês))'}>} Valor)/sum({$<AnoMês={'$(=AddMonths(Only(AnoMês),-1))'}>} Valor))
A expressão é formada de 2 elementos, o primeiro calcula o Valor do mês na dimensão AnoMês e o segundo calcula o Valor do mês anterior. Para esta lógica funcionar você precisa colocar o campo AnoMês na dimensão da tabela.
Abraços,
Cesar.