Fórmula do Excel: Listar feriados entre duas datas -

Índice

Fórmula genérica

(=TEXTJOIN(", ",TRUE,IF(dates>=start,IF(dates<=end,holidays,""),"")))

Resumo

Para listar feriados que ocorrem entre duas datas, você pode usar uma fórmula baseada nas funções TEXTJOIN e IF.

No exemplo mostrado, a fórmula em F8 é:

(=TEXTJOIN(", ",TRUE,IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")))

Esta é uma fórmula de matriz e deve ser inserida com control + shift + enter.

Explicação

Em um nível superior, essa fórmula usa uma função IF aninhada para retornar uma matriz de feriados entre duas datas. Essa matriz é então processada pela função TEXTJOIN, que converte a matriz em texto usando uma vírgula como delimitador.

Trabalhando de dentro para fora, geramos a matriz de feriados correspondentes usando um IF aninhado:

IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")

Se as datas em B4: B12 forem maiores ou iguais à data de início em F5 e se as datas em B4: B12 forem menores ou iguais à data de término em F6, IF retorna uma matriz de feriados. No exemplo mostrado, a lista se parece com isto:

(""; ""; "Dia do Presidente"; "Dia da Memória"; ""; ""; ""; ""; "")

Essa matriz é então entregue à função TEXTJOIN como o argumento text1 , onde o delimitador é definido como "," e ignore_empty é TRUE. A função TEXT JOIN processa os itens na matriz e retorna uma string em que cada item não vazio é separado por uma vírgula mais um espaço.

Observação: a função TEXTJOIN é uma nova função disponível no Office 365 e Excel 2019.

Artigos interessantes...