
Általános képlet
=SUMPRODUCT((holidays>=start)*(holidays<=end))
Összegzés
A két dátum között előforduló ünnepek számlálásához használja a SUMPRODUCT funkciót.
A bemutatott példában az F8 képlete a következő:
=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))
Magyarázat
Ez a képlet két kifejezést használ egyetlen tömbben a SUMPRODUCT függvényen belül.
Az első kifejezés minden ünnepnapot tesztel, hogy megnézze, nagyobb-e vagy egyenlő-e az F5 kezdő dátumával:
(B4:B12>=F5)
Ez a következő TRUE / FALSE értékek tömbjét adja vissza:
(HAMIS; HAMIS; HAMIS; HAMIS; IGAZ; IGAZ; IGAZ; IGAZ; IGAZ)
A második kifejezés minden ünnepi dátumot tesztel, hogy kiderüljön, hogy ez kevesebb-e vagy egyenlő-e az F6-os befejezési dátummal:
(B4:B12<=F6)
amely a következő IGAZ / HAMIS értékek tömbjét adja vissza:
(IGAZ; IGAZ; IGAZ; IGAZ; IGAZ; IGAZ; IGAZ; IGAZ; HAMIS)
Ennek a két tömbnek a szorzata automatikusan a TRUE / FALSE értékeket egyekre és nullákra kényszeríti, így a következő tömböket kapja:
=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))
A szorzás után csak egy ilyen tömb van:
=SUMPRODUCT((0;0;0;0;1;1;1;1;0))
Végül a SUMPRODUCT összegzi a tömb elemeit és 4-et ad vissza.
Ünnepek csak hétköznap
A csak hétköznap (hétfőtől péntekig) esedékes ünnepnapok kiszámításához a következőképpen bővítheti a képletet:
=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))
ahol az rng az ünnepi dátumokat tartalmazó tartomány.