Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde, Estou tentando fazer uma comparação entre o período atual - período passado / período passado * 100, o objetivo é conseguir uma variação de vendas em %, por exemplo, em meu filtro estou comparando o mesmo período em anos diferentes Fevereiro de 2023 e Fevereiro de 2024
A EXPRESSÃO QUE ESTOU USANDO É:
( ( Sum({<Ano_DC={"$(VAnoAtual_DC)"}, Mes_DC={"$(VMesAtual_DC)"}>} TOTAL_ITEM_DC) - Sum({<Ano_DC={" $(VAnoAnterior)"}, Mes_DC={"$(VMesAtual_DC)"}>} TOTAL_ITEM_DC) ) ) / Soma({<Ano_DC= {"$(VAnoAtual_DC)"}, Mes_DC={"$(VMesAtual_DC)"}> } TOTAL_ITEM_DC)
ENVIANDO AS VARIAVEIS
VAnoAtual_DC:
=MAX(Ano_DC)
VAnoAnterior:
=MAX(Ano_DC) -1
VMesAtual_DC:
=MAX(Mes_DC)
Você pode tentar essa expressão
( Above(Sum( TOTAL_ITEM_DC)) - Sum(TOTAL_ITEM_DC) ) / Above(Sum( TOTAL_ITEM_DC))
A função "Above" vai considerar o valor da coluna anterior e retornar o resultado que você precisa.
Quanto as variáveis, como em seu objeto o Ano é uma dimensão não é necessario utilizar um filtro de ano no set analysis pois a dimensão na tabela já vai distribuir o valor.
Quanto a variável de mês, se o intuito for que sempre o usuario tenha que aplicar o filtro também não é necessario, caso queira que mesmo sem o filtro sempre considere o mês atual você pode utilizar o set analysis com a variável do mês, más eu recomendaria utilizar diretamente no set o max(Mes)
Talvez esteja faltando agregar pela sua dimensão,
Exemplo:
Sum(
Aggr(
( ( Sum({<Ano_DC={"$(VAnoAtual_DC)"}, Mes_DC={"$(VMesAtual_DC)"}>} TOTAL_ITEM_DC)
-
Sum({<Ano_DC={" $(VAnoAnterior)"}, Mes_DC={"$(VMesAtual_DC)"}>} TOTAL_ITEM_DC) ) )
/
Soma({<Ano_DC= {"$(VAnoAtual_DC)"}, Mes_DC={"$(VMesAtual_DC)"}> } TOTAL_ITEM_DC),Dim1))
No exemplo coloquei Dim1, neste caso você informaria qual a dimensão faz parte do cálculo.
Att, Matheus
Muito Obrigado por disponibilizar o seu tempo, mas ainda continua dando valor errado =\ no antigo BI que eu tinha o plugger usava esse codigo e funciona perfeitamente
Muito Obrigado por disponibilizar o seu tempo, mas ainda continua dando valor errado =\, fica zerado essa conta, não sei se é por conta de ser uma tabela dinamica, acredito que dividindo isso em duas tabelas simpes de certo
Consegui chegar no resultado utilizando a expressão com aggr. Uma sugestão caso não tenha feito, separar o seu problema em partes é uma melhor forma para encontrar a solução, separa seu código, veja cada parte dele para tentar identificar onde não traz os valores. Veja também suas varáveis, se o que retorna na varável é o mesmo formato que traz em seus campos.
Também se conseguir disponibilizar um exemplo com dados fictícios em qvf , pode ser mais fácil de auxiliar de uma melhor forma.
Att, Matheus
eu te mandei uma mensagem, se puder verificar por favor