Ir para conteúdo
  • 0

Pegar as ultimas 5 datas da minha tabela fato e me retornar "atual" caso contrário "n atual"


Marcelo Kniss
Ir para solução Solucionado por Erick Oliveira ,

Pergunta

  • Alunos

Oi pessoal, tudo bem? Seguinte:

 

Eu quero fazer uma coluna na minha tabela fato, onde as 5 ultimas datas dela me retorne como "atual", caso contrário "n atual".

Eu fiz da seguinte forma:

if [dataFatos] = Date.AddDays(DateTime.Date(DateTime.FixedLocalNow()), -5) then "Atual" else "nAtual"

O problema que dessa forma esse resultado estará respeitando o contexto do meu calendário atual, e não da minha data do calendário da minha fato.

Como eu alteraria meu codigo para ele pegar as 5 ultimas datas da minha fato? Alguem me ajuda? 
 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Bom dia @Marcelo Kniss;

Segue um exemplo da solução no power query:

let
    DataInicio = #date(2023, 1, 1),
    DataFim = #date(2023, 4, 19),
    Datas = List.Dates(DataInicio, Number.From(DataFim) - Number.From(DataInicio) + 1, #duration(1, 0, 0, 0)),
    Tabela = #table(type table [Data = date], List.Transform(Datas, each {_})),
    MaiorData = List.Max(Tabela[Data]),
    VerificarData = Table.AddColumn(Tabela, "Data Atual?", each if [Data] >= Date.AddDays(MaiorData, -5) then "Atual" else "Não Atual", type text)
in
    VerificarData

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala Marcelo,

Pelo que entendo da sua pergunta, voce quer criar uma coluna em que qualquer dado dos ultimos 5 dias, usando como referencia a data mais recente da sua tabela fato, seja considerado como"Atual" e qualquer dado com mais de 5 dias seja considerado como "Nao Atual". Entendi correto?

Caso sim, e simples, fiz aqui uma DAX que funcionou. Vou colocar aqui depois comento sobre os potenciais erros do seu calculo. Neste caso, basta copiar o codigo que esta abaixo no screenshot e adaptar para a sua tabela. Os valores a serem adaptados seriam:

(1) Trocar o meu "DimDatePresets(Date)" pela coluna de datas da sua tabela fato.

 

Coluna_Calculada =
 
VAR Dado_Atual = MAX(DimDatePresets[Date]) - 5
 
RETURN
IF(DimDatePresets[Date] >= Dado_Atual, "Atual", "Nao Atual")

Segue o resultado. Lembrando que a data mais recente da minha tabela seria o dia 17 de Abril e, portanto, qualquer data entre o dia 17 de Abril e o dia 12 de Abril deveria retornar como "Atual" e o resto retornar como "Nao Atual".

image.png.60bafb0a583c8f4f0779348614dedf2b.png

Espero que tenha ajudado e, caso tenha duvidas, so chamar.

Forte abraco,

Gian

Editado por Giancarlo Solbiati
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
19 minutos atrás, Giancarlo Solbiati disse:

Fala Marcelo,

Pelo que entendo da sua pergunta, voce quer criar uma coluna em que qualquer dado dos ultimos 5 dias, usando como referencia a data mais recente da sua tabela fato, seja considerado como"Atual" e qualquer dado com mais de 5 dias seja considerado como "Nao Atual". Entendi correto?

Caso sim, e simples, fiz aqui uma DAX que funcionou. Vou colocar aqui depois comento sobre os potenciais erros do seu calculo. Neste caso, basta copiar o codigo que esta abaixo no screenshot e adaptar para a sua tabela. Os valores a serem adaptados seriam:

(1) Trocar o meu "DimDatePresets(Date)" pela coluna de datas da sua tabela fato.

 

Coluna_Calculada =
 
VAR Dado_Atual = MAX(DimDatePresets[Date]) - 5
 
RETURN
IF(DimDatePresets[Date] >= Dado_Atual, "Atual", "Nao Atual")

Segue o resultado. Lembrando que a data mais recente da minha tabela seria o dia 17 de Abril e, portanto, qualquer data entre o dia 17 de Abril e o dia 12 de Abril deveria retornar como "Atual" e o resto retornar como "Nao Atual".

image.png.60bafb0a583c8f4f0779348614dedf2b.png

Espero que tenha ajudado e, caso tenha duvidas, so chamar.

Forte abraco,

Gian

Saberia fazer por PowerQuery? Por DAX ja me ajuda, mas se fosse por PowerQuery seria melhor ainda!

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Erick Oliveira disse:

Bom dia @Marcelo Kniss;

Segue um exemplo da solução no power query:

let
    DataInicio = #date(2023, 1, 1),
    DataFim = #date(2023, 4, 19),
    Datas = List.Dates(DataInicio, Number.From(DataFim) - Number.From(DataInicio) + 1, #duration(1, 0, 0, 0)),
    Tabela = #table(type table [Data = date], List.Transform(Datas, each {_})),
    MaiorData = List.Max(Tabela[Data]),
    VerificarData = Table.AddColumn(Tabela, "Data Atual?", each if [Data] >= Date.AddDays(MaiorData, -5) then "Atual" else "Não Atual", type text)
in
    VerificarData

 

Muito thanks, deu certo. Só precisei fazer umas alterações mas era justamente oque eu precisava. Muito obrigado!

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