Fórmula do Excel: conte os feriados entre duas datas -

Índice

Fórmula genérica

=SUMPRODUCT((holidays>=start)*(holidays<=end))

Resumo

Para contar feriados que ocorrem entre duas datas, você pode usar a função SUMPRODUCT.

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

=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))

Explicação

Esta fórmula usa duas expressões em uma única matriz dentro da função SUMPRODUCT.

A primeira expressão testa cada data de feriado para ver se é maior ou igual à data de início em F5:

(B4:B12>=F5)

Isso retorna uma matriz de valores TRUE / FALSE como este:

(FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; TRUE)

A segunda expressão testa cada data de feriado para ver se é menor ou igual à data de término em F6:

(B4:B12<=F6)

que retorna uma matriz de valores TRUE / FALSE como este:

(TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; FALSE)

A multiplicação dessas duas matrizes força automaticamente os valores TRUE / FALSE para uns e zeros, resultando em matrizes que se parecem com isto:

=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))

Após a multiplicação, temos apenas um array como este:

=SUMPRODUCT((0;0;0;0;1;1;1;1;0))

Por fim, SUMPRODUCT soma os itens da matriz e retorna 4.

Feriados apenas durante a semana

Para contar feriados que ocorrem apenas em dias de semana (Seg-Sex), você pode estender a fórmula desta forma:

=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))

onde rng é um intervalo contendo datas de feriados.

Artigos interessantes...