
Általános képlet
=SUMPRODUCT(--(WEEKDAY(dates)=day_num))
Összegzés
A dátumok hétköznapi számlálásához (pl. Hétfő, kedd, szerda stb.) A SUMPRODUCT funkciót használhatja a WEEKDAY funkcióval együtt. A bemutatott példában az F4 képlete a következő:
=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))
Megjegyzés: a "dátum" a B4: B15 elnevezett tartomány.
Magyarázat
Kíváncsi lehet, miért nem használunk COUNTIF vagy COUNTIF kódot? Ezek a funkciók nyilvánvaló megoldásnak tűnnek. Hétköznapi értéket tartalmazó segédoszlop hozzáadása nélkül azonban nem lehet kritériumokat létrehozni a COUNTIF számára a hétköznapok dátumtartományban történő számlálására.
Ehelyett a sokoldalú SUMPRODUCT funkciót használjuk, amely kecsesen kezeli a tömböket a Control + Shift + Enter használata nélkül.
A SUMPRODUCT-ot csak egy argumentummal használjuk, amely ebből a kifejezésből áll:
--(WEEKDAY(dates,2)=E4)
Belülről kifelé haladva a WEEKDAY függvény az opcionális 2 argumentummal van konfigurálva, ami azt eredményezi, hogy a hétfőtől vasárnapig 1-7 számot adjon vissza. Ez megkönnyíti a napok sorrendben történő felsorolását az E oszlopban szereplő számokkal egymás után.
A WEEKDAY ezután kiértékeli az összes dátumot a "dátum" nevű tartományban, és számot ad vissza. Az eredmény egy ilyen tömb:
(1;3;7;1;5;2;7;1;7;5;4;7)
A WEEKDAY által visszaadott számokat ezután összehasonlítjuk az E4 értékével, amely 1:
(1;3;7;1;5;2;7;1;7;5;4;7)=1
Az eredmény egy IGAZ / HAMIS érték tömbje.
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)
A SUMPRODUCT csak számokkal működik (nem szöveges vagy logikai értékekkel), ezért a kettős negatív segítségével a TRUE / FALSE értékeket kényszerítjük nullára:
(1;0;0;1;0;0;0;1;0;0;0;0)
Egyetlen tömb feldolgozásával a SUMPRODUCT összegzi az elemeket, és visszaadja az eredményt, 3.
Üres dátumokkal való foglalkozás
Ha üres cellák vannak a dátumlistában, akkor helytelen eredményeket kap, mivel a WEEKDAY függvény akkor is eredményt ad, ha nincs dátum. Az üres cellák kezeléséhez a képletet az alábbiak szerint állíthatja be:
=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))
A kifejezéssel (dátum "") való szorzás az üres cellák törlésének egyik módja.