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

  • Membros

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
  • Membros
  • 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"

 

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

  • 0
  • Membros
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

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...