Ir para conteúdo
  • 0

Moving Annual Total - Período móvel dos últimos 12 meses


Paulo Collis
Ir para solução Solucionado por Tiago Craici - Xperiun ,

Pergunta

16 respostass a esta questão

Posts Recomendados

  • 0
  • Admin
  • Solução

Bom dia @Paulo Collis

Tinha entendido errado... segue alterações:
Resultado:
image.png



Medida:
 

Tiago =
var _dataMax = CALCULATE(MAX(dCalendario[Mes sequencia]), ALL(dCalendario))
var _retoceder = SELECTEDVALUE('Parâmetro'[Parâmetro])
var _inicio = (_dataMax - _retoceder )
 
return
if(
    SELECTEDVALUE(dCalendario[Mes sequencia]) >= _inicio &&
    SELECTEDVALUE(dCalendario[Mes sequencia]) <= _dataMax, [Fat Líq]
)



Utilize o mesmo pbix que mandei, só altere a medida conforme acima. 
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Suave @Paulo Collis?

O que o @Edson Igari quis dizer com "contexto de avaliação" é que o Power BI vai calcular a medida baseado no contexto que você definir dentro dela.

Na tua medida inicial você esta pedindo para o sistema calcular o [Fat Liq] para o período entre as datas definidas pela função DATESINPERIOD(). Esta função esta gerando uma lista de datas entre o ultimo dia da tabela Calendário (i.e.: 31/12/2002) e doze meses antes disso (i.e.: 01/01/2022). É por esse motivo que o teu gráfico começa em Jan 2002:

Citar
Fat Líq_MAT =
CALCULATE(
    [Fat Líq],
    DATESINPERIOD('Calendário'[Data], LASTDATE('Calendário'[Data]), -12, MONTH),
    VALUES('Calendário'[MÊS])     // essa linha não gera nenhum efeito
)

image.png.244ad7af9f1804707f7f7f7cd8652877.png

O que o Edson propõe na medida dele é calcular a [Fat Liq] usando como referencia a data máxima da tabela BaseFat (i.e.: 01/11/2002) e filtrar os resultados para que eles estejam entre esta data e 365 antes dela (i.e.: 01/11/2001) :

Citar
Fat 12 meses =
VAR vMaxDate =
CALCULATE(
    MAX(BaseFat[DATA]),
    ALL('Calendário')
)
RETURN
CALCULATE(
    [Fat Líq],
    FILTER(
        'Calendário',
        'Calendário'[Data] >= vMaxDate - 365 &&
        'Calendário'[Data] <= vMaxDate
    )
)

image.png.20cd24e9f13b4841be2770c458a0a632.png

Daria para fazer também usando a DATESINPERIOD(), mas precisaria de alguns ajustes no modelo de dados para funcionar:

image.png.6b2704e4a5c3b33d47431f7d8f8f1ebb.png

Espero que tenha ficado mais claro assim 😉

Abs!

Editado por Joao Raulino
  • Like 2
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 minutos atrás, Joao Raulino disse:

Suave @Paulo Collis?

O que o @Edson Igari quis dizer com "contexto de avaliação" é que o Power BI vai calcular a medida baseado no contexto que você definir dentro dela.

Na tua medida inicial você esta pedindo para o sistema calcular o [Fat Liq] para o período entre as datas definidas pela função DATESINPERIOD(). Esta função esta gerando uma lista de datas entre o ultimo dia da tabela Calendário (i.e.: 31/12/2002) e doze meses antes disso (i.e.: 01/01/2022). É por esse motivo que o teu gráfico começa em Jan 2002:

image.png.244ad7af9f1804707f7f7f7cd8652877.png

O que o Edson propõe na medida dele é calcular a [Fat Liq] usando como referencia a data máxima da tabela BaseFat (i.e.: 01/11/2002) e filtrar os resultados para que eles estejam entre esta data e 365 antes dela (i.e.: 01/11/2001) :

image.png.20cd24e9f13b4841be2770c458a0a632.png

Daria para fazer também usando a DATESINPERIOD(), mas precisaria de alguns ajustes no modelo de dados para funcionar:

image.png.6b2704e4a5c3b33d47431f7d8f8f1ebb.png

Espero que tenha ficado mais claro assim 😉

Abs!

Mestre @Joao Raulino, obrigado pela explicação para nosso amigo @Paulo Collis. Pq eu entendo o que acontece, mas explicar é difícil hahahahahahaha

  • Like 1
  • Haha 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Edson Igari muito obrigado pela atenção.

@Joao Raulino sua explicação e exemplos foram excelentes, mas para fechar o assunto o que exatamente preciso fazer quando você diz "ajustes no modelo de dados" ?

Tenho minha tabela calendário criada e relacionada com a basevendas. Provavelmente você fez algum ajuste, qual foi ? Poderia disponibilizar o PBIx ?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
37 minutos atrás, Paulo Collis disse:

@Edson Igari muito obrigado pela atenção.

@Joao Raulino sua explicação e exemplos foram excelentes, mas para fechar o assunto o que exatamente preciso fazer quando você diz "ajustes no modelo de dados" ?

Tenho minha tabela calendário criada e relacionada com a basevendas. Provavelmente você fez algum ajuste, qual foi ? Poderia disponibilizar o PBIx ?

Altere para os dados da fato como ele fez.
image.png.ae4f0e48dbf40603f5a1c6acb87408c3.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Admin

Boa noite @Paulo Collis

Veja abaixo se atende seu objetivo:

Resultado:
image.png


OBS > O acumulado fica a gosto do usuário utilizando o parâmetro (Período).


1º Criado uma nova coluna na dCalendario com (Mes Sequencia):
image.png


2º Criado o Parâmetro de "Intervalo numérico":

Parâmetro = GENERATESERIES(1, 36, 1)

image.png


3º Criado a medida:
 

Tiago =
var _contexto = SELECTEDVALUE(dCalendario[Mes sequencia])
var _retoceder = SELECTEDVALUE('Parâmetro'[Parâmetro])
var _inicio = ( _contexto - _retoceder ) +1 
 
return
CALCULATE(
    [Fat Líq],
    ALL(dCalendario),
    dCalendario[Mes sequencia] >= _inicio &&
    dCalendario[Mes sequencia] <= _contexto
)



Em anexo o arquivo pbix.


Sucesso! 

 

 

ultimos12meses.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 20/12/2023 em 19:52, Paulo Collis disse:

Sua explicação e exemplos foram excelentes, mas para fechar o assunto o que exatamente preciso fazer quando você diz "ajustes no modelo de dados" ?

Tenho minha tabela calendário criada e relacionada com a basevendas. Provavelmente você fez algum ajuste, qual foi ? Poderia disponibilizar o PBIx ?

Nesse caso em especifico (simplificado) bastou eu criar uma dCalendario nova baseada nos 12 meses do DATESINPERIOD. Depois usei ela como eixo-x no gráfico:

image.png.a9f38f215d6e70df2815ef5e410d991b.png

Abs!

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...