Membros Marcelo Kniss Postado Abril 19 Membros Compartilhar Postado Abril 19 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 More sharing options...
0 Membros Solução Erick Oliveira Postado Abril 21 Membros Solução Compartilhar Postado Abril 21 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 More sharing options...
0 Membros Giancarlo Solbiati Postado Abril 19 Membros Compartilhar Postado Abril 19 (editado) 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". Espero que tenha ajudado e, caso tenha duvidas, so chamar. Forte abraco, Gian Editado Abril 19 por Giancarlo Solbiati Link para o comentário Compartilhar em outros sites More sharing options...
0 Membros Marcelo Kniss Postado Abril 19 Autor Membros Compartilhar Postado Abril 19 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". 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 More sharing options...
0 Membros Marcelo Kniss Postado Abril 21 Autor Membros Compartilhar Postado Abril 21 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 More sharing options...
Pergunta
Marcelo Kniss
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
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora