Criar um coluna no Power Query que identifique se a data é feriado ou fim de semana

Anônima
2023-04-25T03:44:16+00:00

Estou tentando criar no Power Query uma coluna personalizada que identifica se a data contida na coluna "data da compra" é fim de semana ou feriado.

if List.Contains(Feriados[Data], [Data da Compra]) then "FERIADO"

else if List.IsEmpty(Feriados) then "NÃO FERIADO"

else "NÃO FERIADO"

Criei uma tabela chamada "Feriados" que contém todas as datas de feriados de 2001 até 2099. Inicialmente quero que a coluna retorne, consultando a tabela "Feriados" se a data existe lá ou não. Ela está trazendo as datas que são feriados, porém as datas que não existem na tabela "Feriados" ela retorna erro.

Gostaria de saber se é possível, numa fórmula só, checar a data da coluna "Data da Compra" e já retornar "FERIADO" para Fim de Semana e os feriados listados na tabela "Feriados" e "NÃO FERIADO" para os dias úteis.

O objetivo disso tudo é pra, caso a data da compra seja um "feriado bancário", a coluna retorne a data da compra para o próximo dia útil.

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

2 respostas

Classificar por: Mais útil
  1. Anônima
    2023-04-25T04:26:44+00:00

    Continua dando erro. A única que retorna corretamente é FERIADO (que encontra na Tabela "Feriados").

    Tanto o FIM DE SEMANA quanto o NÃO FERIADO, retornam como ERROR.

    É a última coluna que estou aplicando o seu código

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Dio Xavier 290.3K Pontos de reputação Moderador Voluntário
    2023-04-25T04:01:57+00:00

    Olá

    Bem vindo à Comunidade Microsoft 365 e Office

    Tudo bem, Beto? Para evitar o erro quando a data não existir na tabela de feriados, você pode usar a função List.Contains() em conjunto com a função List.DatesBetween() para verificar se a data da compra é um fim de semana. Assim, a fórmula ficaria assim:

    if List.Contains(Feriados[Data], [Data da Compra]) then "FERIADO" <br>else if Date.DayOfWeek([Data da Compra]) = 1 or Date.DayOfWeek([Data da Compra]) = 7 then "FIM DE SEMANA" else if List.IsEmpty(Feriados) then "NÃO FERIADO" else "NÃO FERIADO"

    Nessa fórmula, a primeira condição verifica se a data da compra está na tabela de feriados. Se sim, ela retorna "FERIADO". Caso contrário, a segunda condição verifica se a data da compra é um fim de semana (sábado ou domingo), retornando "FIM DE SEMANA". Se a data não for nem feriado nem fim de semana, a fórmula retorna "NÃO FERIADO".

    Certifique-se de que a tabela "Feriados" contenha apenas as datas de feriados nacionais e que as datas estejam formatadas corretamente como datas e não como texto. Além disso, verifica se a coluna de data na tabela "Data da Compra" também está formatada corretamente como data.

    Esta resposta foi útil?

    0 comentários Sem comentários