Формула Excel: считать праздники между двумя датами -

Общая формула

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

Резюме

Чтобы подсчитать праздники, которые происходят между двумя датами, вы можете использовать функцию СУММПРОИЗВ.

В показанном примере формула в F8:

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

Объяснение

В этой формуле используются два выражения в одном массиве внутри функции СУММПРОИЗВ.

Первое выражение проверяет каждую дату праздника, чтобы увидеть, больше ли она или равна дате начала в F5:

(B4:B12>=F5)

Это возвращает массив значений TRUE / FALSE, например:

(ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА)

Второе выражение проверяет каждую дату праздника, чтобы увидеть, меньше ли она или равна дате окончания в F6:

(B4:B12<=F6)

который возвращает массив значений ИСТИНА / ЛОЖЬ, например:

(ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА; ЛОЖЬ)

Умножение этих двух массивов автоматически приводит значения ИСТИНА / ЛОЖЬ к единицам и нулям, в результате получаются массивы, которые выглядят следующим образом:

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

После умножения у нас остается только один такой массив:

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

Наконец, СУММПРОИЗВ суммирует элементы в массиве и возвращает 4.

Праздники только в будние дни

Для подсчета праздников, приходящихся только на будние дни (пн-пт), вы можете расширить формулу следующим образом:

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

где rng - это диапазон, содержащий праздничные даты.

Интересные статьи...