
Všeobecný vzorec
=SUMPRODUCT((holidays>=start)*(holidays<=end))
Zhrnutie
Ak chcete počítať sviatky, ktoré nastanú medzi dvoma dátumami, môžete použiť funkciu SUMPRODUCT.
V zobrazenom príklade je vzorec v F8:
=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))
Vysvetlenie
Tento vzorec používa dva výrazy v jednom poli vo vnútri funkcie SUMPRODUCT.
Prvý výraz testuje každý sviatok, či je väčší alebo rovný počiatočnému dátumu v F5:
(B4:B12>=F5)
Toto vráti pole TRUE / FALSE hodnôt, ako je táto:
(NEPRAVDA; NEPRAVDA; NEPRAVDA; NEPRAVDA; PRAVDA; PRAVDA; PRAVDA; PRAVDA; PRAVDA)
Druhý výraz testuje každý sviatok, či je menší alebo rovnaký ako dátum ukončenia v F6:
(B4:B12<=F6)
ktorý vráti pole TRUE / FALSE hodnôt, ako je tento:
(PRAVDA; PRAVDA; PRAVDA; PRAVDA; PRAVDA; PRAVDA; PRAVDA; PRAVDA; NEPRAVDA)
Násobenie týchto dvoch polí automaticky vynúti hodnoty TRUE / FALSE na jednotky a nuly, čo vedie k poliam, ktoré vyzerajú takto:
=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))
Po vynásobení máme iba jedno také pole:
=SUMPRODUCT((0;0;0;0;1;1;1;1;0))
Nakoniec SUMPRODUCT sčíta položky v poli a vráti 4.
Sviatky iba vo všedné dni
Ak chcete počítať sviatky, ktoré sa vyskytujú iba cez pracovné dni (pondelok až piatok), môžete vzorec predĺžiť takto:
=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))
kde rng je rozsah obsahujúci dátumy dovolenky.