fnHolidaysInPeriodPT

MData e hora

Feriados nacionais e pontos facultativos do Brasil entre duas datas.

Sintaxe

M
fnHolidaysInPeriodPT(StartDate as date, EndDate as date) as table

Parâmetros

StartDatedateObrigatório

Início do período.

M
#date(2024, 1, 1)
EndDatedateObrigatório

Fim do período, inclusive.

M
#date(2026, 12, 31)

Tipo de retorno

table [DateReference = date, HolidayPT = text, HolidayType = text]

Dependências

fnFeriados

Exemplos

M
fnHolidaysInPeriodPT(#date(2024, 1, 1), #date(2026, 12, 31))
// 42 linhas (14 por ano)

Table.SelectRows(fnHolidaysInPeriodPT(#date(2026, 1, 1), #date(2026, 12, 31)), each [HolidayType] = "Feriado nacional")
// 10 linhas

Código completo

M
let
    fnHolidaysInPeriodPT = (StartDate as date, EndDate as date) as table =>
        let
            vAnos = if EndDate < StartDate then {} else {Date.Year(StartDate) .. Date.Year(EndDate)},
            // Tabela vazia tipada garante as colunas mesmo sem nenhum ano
            vTodos = Table.Combine(
                {#table(type table [Data = date, Feriado = text, Tipo = text], {})}
                & List.Transform(vAnos, fnFeriados)
            ),
            vPeriodo = Table.SelectRows(vTodos, each [Data] >= StartDate and [Data] <= EndDate),
            vRenomeado = Table.RenameColumns(vPeriodo, {{"Data", "DateReference"}, {"Feriado", "HolidayPT"}, {"Tipo", "HolidayType"}})
        in
            Table.Sort(vRenomeado, {{"DateReference", Order.Ascending}}),

    Documentacao = [
        Documentation.Name = "fnHolidaysInPeriodPT",
        Documentation.Description = "Feriados nacionais e pontos facultativos do Brasil entre duas datas.",
        Documentation.LongDescription = "Chama fnFeriados para cada ano do período e filtra as datas. Colunas DateReference, HolidayPT e HolidayType (Feriado nacional, Ponto facultativo ou Data comemorativa).",
        Documentation.Category = "Data e hora",
        Documentation.Author = "Laennder Alves, adaptado por Paulo André Jesus",
        Documentation.Version = "2.0",
        Documentation.Examples = {
            [Description = "2024 a 2026", Code = "fnHolidaysInPeriodPT(#date(2024, 1, 1), #date(2026, 12, 31))", Result = "42 linhas (14 por ano)"],
            [Description = "Só feriados nacionais", Code = "Table.SelectRows(fnHolidaysInPeriodPT(#date(2026, 1, 1), #date(2026, 12, 31)), each [HolidayType] = ""Feriado nacional"")", Result = "10 linhas"]
        }
    ]
in
    Value.ReplaceType(fnHolidaysInPeriodPT, Value.ReplaceMetadata(Value.Type(fnHolidaysInPeriodPT), Documentacao))

Mais informações

Fonte
Laennder Alves, adaptado por Paulo André Jesus
Versão
2.0

Conhecer a trilha Power BI ao vivo