„Excel“ formulė: Suma pagal darbo dieną -

Turinys

Bendroji formulė

=SUMPRODUCT((WEEKDAY(dates)=day_num)*values)

Santrauka

Apibendrinant duomenis pagal savaitės dieną (ty sumą pagal pirmadienius, antradienius, trečiadienius ir kt.), Galite naudoti funkciją SUMPRODUCT kartu su WEEKDAY funkcija.

Parodytame pavyzdyje formulė H4 yra:

=SUMPRODUCT((WEEKDAY(dates,2)=G4)*amts)

Paaiškinimas

Jums gali kilti klausimas, kodėl nenaudojame funkcijos SUMIF arba SUMIFS? Tai atrodo akivaizdus būdas susumuoti savaitės dienomis. Tačiau nepridėjus pagalbinio stulpelio su savaitės verte, negalima sukurti SUMIF kriterijų, kuriame būtų atsižvelgiama į savaitės dieną.

Vietoj to mes naudojame patogią 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)=G4)*amts

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 nėra būtina, tačiau palengvina dienų eilės surašymą ir G eilutės skaičių paėmimą iš eilės.

WEEKDAY įvertina kiekvieną reikšmę nurodytame diapazone „datos“ ir pateikia skaičių. Rezultatas yra toks masyvas:

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

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

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

Rezultatas yra TRUE / FALSE reikšmių masyvas.

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

Tada šis masyvas padauginamas iš nurodyto diapazono „amts“ reikšmių. „SUMPRODUCT“ veikia tik su skaičiais (ne tekstu ar loginėmis reikšmėmis), tačiau matematikos operacijos verčia TRUE / FALSE reikšmes automatiškai versti į nulį ir nulį, taigi turime:

(0; 0; 0; 1; 0; 0; 0; 0) * (100; 250; 75; 275; 250; 100; 300; 125)

Kuris duoda:

(0; 0; 0; 275; 0; 0; 0; 0)

Tik apdorojant šį vienintelį masyvą, SUMPRODUCT susumuoja elementus ir grąžina rezultatą.

Įdomios straipsniai...