Ir para conteúdo
  • 0

Filtro de data com a condição do dia da semana.


Fabio Graciano
Ir para solução Solucionado por Erick Oliveira ,

Pergunta

  • Alunos

Olá amigos, estou com o desafio de filtrar a base de dados pegando as movimentações do dia anterior,

As movimentações só acontecem durante a semana, (de segunda a sexta-feira), até ai tudo certo,

O problema é a atualização na segunda feira, onde o Power Query está parametrizado para pegar os dados do dia anterior (IsInPreviousDay).

image.png.0af7229fe3a1087cb3d79d60e63e5634.png

Meu desafio é que o Power Query verifique se o dia da atualização é uma segunda-feira ele filtre a data de dois dias atrás (d-2), pegando os dados de sexta-feira.

Se a data da atualização for terça, quarta, quinta e sexta-feira a atualização é IsInPreviousDay.

Como fazer essa condição?

Agradeço pela ajuda.

Filtro Dia Anterior.zip

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa tarde Fabio;

Segue a solução abaixo, basta joga-la em uma consulta nula:

let
    Fonte = Table.FromRows(
        Json.Document(
            Binary.Decompress(
                Binary.FromText(
                    "jdBBCgAhCAXQu7QO0syys0T3v8YEunAwmNk+Pnz9ayXAAlQqVEo5yUw7HyNnPH5auxipNWejq3Wf42jdbHjDaFyjiaiJ7+VoDBez3PQ2owlEG3TJqSF8mO3yzrVo9i/6nQUvZh3Vd5yb9wM=",
                    BinaryEncoding.Base64
                ),
                Compression.Deflate
            )
        ),
        let
            _t = ((type nullable text) meta [Serialized.Text = true])
        in
            type table [Data = _t, Faturamento = _t]
    ),
    #"Tipo Alterado" = Table.TransformColumnTypes(Fonte, {{"Data", type date}, {"Faturamento", Int64.Type}}),
    DayOfWeek = Date.DayOfWeek(DateTime.FixedLocalNow()),
    #"Linhas Filtradas" = Table.SelectRows(
        #"Tipo Alterado",
        each
            if DayOfWeek = 1 then
                [Data] = Date.AddDays(DateTime.Date(DateTime.FixedLocalNow()), -3)
            else
                Date.IsInPreviousDay([Data])
    )
in
    #"Linhas Filtradas"

 

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

  • 0
  • Alunos
Em 13/03/2023 em 15:06, Erick Oliveira disse:

Boa tarde Fabio;

Segue a solução abaixo, basta joga-la em uma consulta nula:

let
    Fonte = Table.FromRows(
        Json.Document(
            Binary.Decompress(
                Binary.FromText(
                    "jdBBCgAhCAXQu7QO0syys0T3v8YEunAwmNk+Pnz9ayXAAlQqVEo5yUw7HyNnPH5auxipNWejq3Wf42jdbHjDaFyjiaiJ7+VoDBez3PQ2owlEG3TJqSF8mO3yzrVo9i/6nQUvZh3Vd5yb9wM=",
                    BinaryEncoding.Base64
                ),
                Compression.Deflate
            )
        ),
        let
            _t = ((type nullable text) meta [Serialized.Text = true])
        in
            type table [Data = _t, Faturamento = _t]
    ),
    #"Tipo Alterado" = Table.TransformColumnTypes(Fonte, {{"Data", type date}, {"Faturamento", Int64.Type}}),
    DayOfWeek = Date.DayOfWeek(DateTime.FixedLocalNow()),
    #"Linhas Filtradas" = Table.SelectRows(
        #"Tipo Alterado",
        each
            if DayOfWeek = 1 then
                [Data] = Date.AddDays(DateTime.Date(DateTime.FixedLocalNow()), -3)
            else
                Date.IsInPreviousDay([Data])
    )
in
    #"Linhas Filtradas"

 

Funcionou perfeitamente, muito obrigado @Erick Oliveira

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