„Excel“ formulė: skaičiuokite datas pagal savaitės dieną -

Bendroji formulė

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Santrauka

Norėdami suskaičiuoti datas pagal darbo dieną (ty skaičiuoti pirmadienius, antradienius, trečiadienius ir kt.), Galite naudoti funkciją SUMPRODUCT kartu su WEEKDAY funkcija. Parodytame pavyzdyje formulė F4 yra:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Pastaba: „datos“ yra pavadintas diapazonas B4: B15.

Paaiškinimas

Jums gali kilti klausimas, kodėl nenaudojame COUNTIF ar COUNTIF? Šios funkcijos atrodo akivaizdus sprendimas. Tačiau nepridėjus pagalbinio stulpelio, kuriame yra savaitės dienos vertė, jokiu būdu negalima sukurti kriterijų, pagal kuriuos COUNTIF skaičiuotų savaitės dienas dienų sekoje.

Vietoj to mes naudojame universalią funkciją SUMPRODUCT, kuri grakščiai tvarko masyvus, nenaudojant „Control“ + „Shift“ + „Enter“.

Mes naudojame SUMPRODUCT tik su vienu argumentu, kurį sudaro ši išraiška:

--(WEEKDAY(dates,2)=E4)

Dirbant iš vidaus, WEEKDAY funkcija sukonfigūruota su pasirinktiniu argumentu 2, dėl kurio ji grąžina skaičius 1–7 atitinkamai dienoms pirmadienis – sekmadienis. Tai palengvina dienų eilės surašymą su eilės E stulpelio skaičiais.

Tada WEEKDAY įvertina kiekvieną datą nurodytame diapazone „datos“ ir pateikia skaičių. Rezultatas yra toks masyvas:

(1;3;7;1;5;2;7;1;7;5;4;7)

Tada WEEKDAY grąžinti skaičiai lyginami su E4 verte, kuri yra 1:

(1;3;7;1;5;2;7;1;7;5;4;7)=1

Rezultatas yra TRUE / FALSE reikšmių masyvas.

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)

„SUMPRODUCT“ veikia tik su skaičiais (ne su tekstu ar loginėmis reikšmėmis), todėl dvigubą neigiamą rezultatą verčiame tiesos ir tiesos reikšmėmis ties ir nuliais:

(1;0;0;1;0;0;0;1;0;0;0;0)

Jei norite apdoroti vieną masyvą, SUMPRODUCT susumuoja elementus ir pateikia rezultatą 3.

Tuščių datų sprendimas

Jei datų sąraše turite tuščių langelių, gausite neteisingus rezultatus, nes WEEKDAY funkcija pateiks rezultatą, net jei nėra datos. Norėdami tvarkyti tuščius langelius, galite koreguoti formulę taip:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

Padauginus iš išraiškos (datos "") yra vienas iš būdų panaikinti tuščius langelius.

Įdomios straipsniai...