
Üldine valem
=SUMPRODUCT(--(WEEKDAY(dates)=day_num))
Kokkuvõte
Kuupäevade loendamiseks nädalapäevade järgi (st esmaspäevade, teisipäevade, kolmapäevade jne loendamiseks) saate kasutada funktsiooni SUMPRODUCT koos WEEKDAY funktsiooniga. Näidatud näites on valem F4-s järgmine:
=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))
Märkus: "kuupäevad" on nimega vahemik B4: B15.
Selgitus
Võite mõelda, miks me ei kasuta COUNTIF-i või COUNTIF-i? Need funktsioonid tunduvad ilmse lahendusena. Nädalapäeva väärtust sisaldava abistaja veeru lisamata pole aga mingit võimalust luua COUNTIF-i kriteeriumid nädalapäevade loendamiseks vahemikus kuupäevad.
Selle asemel kasutame mitmekülgset funktsiooni SUMPRODUCT, mis tegeleb massiividega graatsiliselt, ilma et oleks vaja kasutada klahve Control + Shift + Enter.
Kasutame SUMPRODUCTi ainult ühe argumendiga, mis koosneb sellest avaldisest:
--(WEEKDAY(dates,2)=E4)
Seestpoolt töötades on WEEKDAY funktsioon konfigureeritud valikulise argumendiga 2, mis põhjustab selle, et see tagastab esmaspäevast pühapäevani vastavalt numbrid 1–7. See hõlbustab päevade järjestust järjestikuses veerus E olevate numbritega järjestamist.
WEEKDAY hindab seejärel iga kuupäeva nimetatud vahemikus "kuupäevad" ja tagastab numbri. Tulemuseks on selline massiiv:
(1;3;7;1;5;2;7;1;7;5;4;7)
WEEKDAY tagastatud numbreid võrreldakse seejärel väärtuses E4, mis on 1:
(1;3;7;1;5;2;7;1;7;5;4;7)=1
Tulemuseks on TRUE / FALSE väärtuste massiiv.
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)
SUMPRODUCT töötab ainult numbritega (mitte teksti ega tõeväärtusega), nii et me kasutame topeltnegatiivi, et sundida TÕENE / VÄÄR väärtusi ühele ja nullile:
(1;0;0;1;0;0;0;1;0;0;0;0)
Ühe massiivi töötlemiseks summeerib SUMPRODUCT üksused ja tagastab tulemuse 3.
Tühjade kuupäevadega tegelemine
Kui teil on kuupäevaloendis tühjad lahtrid, saate valed tulemused, kuna funktsioon WEEKDAY tagastab tulemuse ka siis, kui kuupäeva pole. Tühjade lahtrite käsitsemiseks saate valemit reguleerida järgmiselt:
=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))
Korrutamine avaldisega (kuupäevad "") on üks võimalus tühjade lahtrite tühistamiseks.