Excel képlet: Számolja a dátumokat a hét napja szerint

Á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.

érdekes cikkek...