
Splošna formula
=SUMPRODUCT(--(WEEKDAY(dates)=day_num))
Povzetek
Če želite šteti datume po delovnih dneh (tj. Šteti ponedeljke, torke, srede itd.), Lahko uporabite funkcijo SUMPRODUCT skupaj s funkcijo WEEKDAY. V prikazanem primeru je formula v F4:
=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))
Opomba: "datumi" je imenovani obseg B4: B15.
Pojasnilo
Se morda sprašujete, zakaj ne uporabljamo COUNTIF ali COUNTIFs? Te funkcije se zdijo očitna rešitev. Vendar brez dodajanja pomožnega stolpca, ki vsebuje vrednost dneva v tednu, ni mogoče ustvariti meril za štetje delovnih dni v številu datumov v COUNTIF.
Namesto tega uporabljamo vsestransko funkcijo SUMPRODUCT, ki elegantno obdeluje polja, ne da bi morali uporabljati Control + Shift + Enter.
SUMPRODUCT uporabljamo z enim samim argumentom, ki je sestavljen iz tega izraza:
--(WEEKDAY(dates,2)=E4)
Funkcija WEEKDAY, ki deluje od znotraj navzven, je konfigurirana z neobveznim argumentom 2, zaradi česar vrne številke 1-7 za dneve od ponedeljka do nedelje. Tako je lažje zaporedoma naštevati dneve po številu v stolpcu E.
WEEKDAY nato oceni vsak datum v imenovanem obsegu "datumi" in vrne številko. Rezultat je matrika, kot je ta:
(1;3;7;1;5;2;7;1;7;5;4;7)
Številke, ki jih vrne WEEKDAY, se nato primerjajo z vrednostjo v E4, ki je 1:
(1;3;7;1;5;2;7;1;7;5;4;7)=1
Rezultat je niz TRUE / FALSE vrednosti.
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)
SUMPRODUCT deluje samo s števili (ne z besedilom ali logičnimi vrednostmi), zato z dvojnim negativom prisilimo vrednosti TRUE / FALSE na eno in ničle:
(1;0;0;1;0;0;0;1;0;0;0;0)
Z eno matriko za obdelavo SUMPRODUCT sešteje elemente in vrne rezultat, 3.
Ukvarjanje s praznimi datumi
Če imate na seznamu datumov prazne celice, boste dobili napačne rezultate, saj bo funkcija WEEKDAY vrnila rezultat, tudi če ni datuma. Za obdelavo praznih celic lahko formulo prilagodite na naslednji način:
=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))
Množenje z izrazom (datumi "") je eden od načinov za izločitev praznih celic.