Ir para conteúdo
  • 0

Comparação de períodos retornando valores para dias futuros


Andy Everson
Ir para solução Solucionado por Renato Carlos Rossato ,

Pergunta

  • Alunos

Boa tarde,

Estou utilizando a função de inteligência de tempo "SAMEPERIODLASTYEAR" para retornar retornar os valores realizados na safra anterior e comparar com o real atual. Porem esta sendo retornado os valores datas futuras, as quais eu tenho a meta mais ainda não tenho a produção.

Utilizei a função "IF" para validar se existe valor na medida "Cana Moida", deu certo de forma parcial, quando olho o mês, semana e dia... porem no valor total, continua trazendo o valor total da safra anterior.

 

Alguém teria uma forma de solucionar este problema.

image.png.a51aebf7c40f408179eccaa1be0e1fbb.png

Produção Industrial.pbix

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Olá Andy, para isso crie uma coluna calculada na tabela calendário com a seguinte fórmula:

Possui Moagem = dcalendario[data] <= MAX(fato[data])

-- a fato[data] é a data da tabela fato que está relacionando com a calendário.

Assim ele irá retornar TRUE e FALSE.

Na sua medida coloque o SAMEPERIODLASTYEAR dentro de um CALCULATETABLE dessa forma:

CALCULATETABLE(

                SAMEPERIODLASTYEAR(dcalendario[data]),

dCalendario[Possui Moagem] = TRUE()

)

Assim ele deve retornar somente das datas do ano passado correspondentes a esse ano.

Espero ter ajudado.

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Admin

Boa noite @Andy Everson!

Segue solução:

Resultado:
image.png.1c8387e444923325c4e297f5ef2a197c.png


1º Primeiro criado nova coluna na tabela "Calendario":
image.png.0a4db87c86b8eb2733614d8778021651.png

Medida:
 

SF2 =
    SWITCH(TRUE(),
    Calendario[SF] = "SF 09/10", 10,
    Calendario[SF] = "SF 10/11", 11,
    Calendario[SF] = "SF 11/12", 12,
    Calendario[SF] = "SF 12/13", 13,
    Calendario[SF] = "SF 13/14", 14,
    Calendario[SF] = "SF 14/15", 15,
    Calendario[SF] = "SF 15/16", 16,
    Calendario[SF] = "SF 16/17", 17,
    Calendario[SF] = "SF 17/18", 18,
    Calendario[SF] = "SF 18/19", 19,
    Calendario[SF] = "SF 19/20", 20,
    Calendario[SF] = "SF 20/21", 21,
    Calendario[SF] = "SF 21/22", 22,
    Calendario[SF] = "SF 22/23", 23
    )



Medida LY:
 

LY Tiago =
VAR SAFRAANTERIOR = SELECTEDVALUE(Calendario[SF2]) -1
 
RETURN
CALCULATE([Produzido no Ultimo dia],
FILTER(
    ALL(Calendario),
    Calendario[SF2] = SAFRAANTERIOR)
)





Segue em anexo arquivo pbix para melhor entendimento.
Sucesso!



















 

Everson.pbix

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

  • 0
  • Admin

Bom dia @Andy Everson

... Segue algumas considerações, quando aplicado a função SAMEPERIODLASTYEAR você utilizou a coluna [Data] da sua tabela "Calendario" sendo que seu "Ano/Safra" não respeita o calendário normal dessa forma não podemos utilizar o campo para trazer a Safra anterior e comparar com a do contexto. 


Outro cenário bacana é deixar para o usuário escolher quantos anos (Safra) voltar, pois imagine que foi utilizado determinado grão e ou fertilizante de 2 3 4 ou 5 anos atrás e querem comparar a performance de X ano com o do momento.


Para atender a essa demanda de comparação criei a solução abaixo comparando o contexto - 3 anos:

Resultado:
image.png.bf8fae706605e500320c4c1069685f55.png

Inserido novo parâmetro:
image.png.f217fe47b396dfba762e387e5649b0c6.png

Medida "LY Tiago V2":

LY Tiago V2 =
VAR contexto = SELECTEDVALUE(Calendario[SF2])
var ano = SELECTEDVALUE(SFANO[SFANO])
 
RETURN
CALCULATE([Produzido no Ultimo dia],
FILTER(
    ALL(Calendario),
    Calendario[SF2] = contexto - ano  )
)

 



Sucesso! 🚀

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 03/09/2022 em 18:20, Renato Rossato disse:

Olá Andy, para isso crie uma coluna calculada na tabela calendário com a seguinte fórmula:

Possui Moagem = dcalendario[data] <= MAX(fato[data])

-- a fato[data] é a data da tabela fato que está relacionando com a calendário.

Assim ele irá retornar TRUE e FALSE.

Na sua medida coloque o SAMEPERIODLASTYEAR dentro de um CALCULATETABLE dessa forma:

CALCULATETABLE(

                SAMEPERIODLASTYEAR(dcalendario[data]),

dCalendario[Possui Moagem] = TRUE()

)

Assim ele deve retornar somente das datas do ano passado correspondentes a esse ano.

Espero ter ajudado.

 

 

Obrigado Renato, deu super certo.

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...