Формула на Excel: Пребройте празниците между две дати -

Обща формула

=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 е диапазон, съдържащ ваканционни дати.

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