M · UDF
fnHolidaysInPeriodPT
Feriados nacionais e pontos facultativos do Brasil entre duas datas.
Categoria: Data e horaTipo: UDFVersão: v2.0Fonte: Laennder Alves, adaptado por Paulo André JesusAtualizado em: 25/09/2026
Documentação completa na Function Library →Sintaxe
fnHolidaysInPeriodPT(StartDate as date, EndDate as date) as tableArgumentos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| StartDate | date | Sim | Início do período. |
| EndDate | date | Sim | Fim do período, inclusive. |
Retorno
table [DateReference = date, HolidayPT = text, HolidayType = text]
Código completo
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))Exemplos
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 linhasDicas e observações
💡 Chama fnFeriados para cada ano: mesma lista e mesma classificação. ⚠️ Duas festas podem cair na mesma data (Páscoa em 21/04/2030). Agrupe por DateReference antes de mesclar com o calendário, ou o dia duplica.
Dependências
fnFeriados