
Обща формула
=SUMPRODUCT((holidays>=start)*(holidays<=end))
Обобщение
За да преброите празниците, които настъпват между две дати, можете да използвате функцията SUMPRODUCT.
В показания пример формулата във F8 е:
=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))
Обяснение
Тази формула използва два израза в един масив във функцията SUMPRODUCT.
Първият израз тества всяка празнична дата, за да се види дали е по-голяма или равна на началната дата във F5:
(B4:B12>=F5)
Това връща масив от TRUE / FALSE стойности по следния начин:
(FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; TRUE)
Вторият израз тества всяка празнична дата, за да се види дали тя е по-малка или равна на крайната дата във F6:
(B4:B12<=F6)
който връща масив от TRUE / FALSE стойности по следния начин:
(TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; FALSE)
Умножението на тези два масива автоматично принуждава стойностите TRUE / FALSE на единици и нули, което води до масиви, които изглеждат така:
=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))
И накрая, SUMPRODUCT сумира елементите в масива и връща 4.
Почивки само в делнични дни
За да преброите празниците, които се случват само през делничните дни (понеделник-петък), можете да разширите формулата по следния начин:
=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))
където rng е диапазон, съдържащ ваканционни дати.