Excel formula: Vsota po delovnem dnevu -

Kazalo

Splošna formula

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

Povzetek

Če želite podatke seštevati po delovnih dneh (tj. Vsote po ponedeljkih, torkih, sredah itd.), Lahko uporabite funkcijo SUMPRODUCT skupaj s funkcijo WEEKDAY.

V prikazanem primeru je formula v H4:

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

Pojasnilo

Morda se sprašujete, zakaj ne uporabljamo funkcije SUMIF ali SUMIFS? Zdi se, da je to očiten način seštevanja po dnevih v tednu. Vendar brez dodajanja pomožnega stolpca z vrednostjo v delovnem dnevu ni mogoče ustvariti meril za SUMIF, ki upoštevajo delovni dan.

Namesto tega uporabimo priročno 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)=G4)*amts

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. To ni potrebno, vendar olajša seznam dni po vrsti in zaporedje pobiranja številk v stolpcu G.

WEEKDAY izračuna vsako vrednost v imenovanem obsegu "datumi" in vrne številko. Rezultat je matrika, kot je ta:

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

Številke, ki jih vrne WEEKDAY, se nato primerjajo z vrednostjo v G4, ki je 1.

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

Rezultat je niz TRUE / FALSE vrednosti.

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

Nato se ta matrika pomnoži z vrednostmi v imenovanem obsegu "amts". SUMPRODUCT deluje samo s števili (ne z besedilom ali logičnimi vrednostmi), vendar matematične operacije samodejno prisilijo vrednosti TRUE / FALSE na eno in ničle, zato imamo:

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

Kar prinaša:

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

S samo to eno matriko, ki jo je treba obdelati, SUMPRODUCT sešteje elemente in vrne rezultat.

Zanimive Članki...