Excel-formel: Sum efter hverdag -

Indholdsfortegnelse

Generisk formel

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

Resumé

For at opsummere data efter hverdage (dvs. sum efter mandage, tirsdage, onsdage osv.) Kan du bruge SUMPRODUCT-funktionen sammen med WEEKDAY-funktionen.

I det viste eksempel er formlen i H4:

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

Forklaring

Du spekulerer måske på, hvorfor vi ikke bruger SUMIF- eller SUMIFS-funktionen? Disse ser ud til at være en indlysende måde at opsummere på ugedagene. Uden at tilføje en hjælpekolonne med en hverdagsværdi er der imidlertid ingen måde at oprette et kriterium for SUMIF, der tager højde for hverdagen.

I stedet bruger vi den praktiske SUMPRODUCT-funktion, som håndterer arrays yndefuldt uden behov for at bruge Control + Shift + Enter.

Vi bruger SUMPRODUCT med kun et argument, der består af dette udtryk:

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

Arbejdet indefra og ud er WEEKDAY-funktionen konfigureret med det valgfri argument 2, som får det til at returnere nummer 1-7 for henholdsvis dagene mandag-søndag. Dette er ikke nødvendigt, men det gør det lettere at liste dagene i rækkefølge og samle numrene i kolonne G i rækkefølge.

WEEKDAY evaluerer hver værdi i det navngivne interval "datoer" og returnerer et tal. Resultatet er en matrix som denne:

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

Tallene, der returneres fra WEEKDAY, sammenlignes derefter med værdien i G4, som er 1.

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

Resultatet er en matrix med SAND / FALSK-værdier.

(FALSK; FALSK; FALSK; SAND; FALSK; FALSK; FALSK; FALSK)

Dernæst ganges denne matrix med værdierne i det navngivne interval "amts". SUMPRODUCT fungerer kun med tal (ikke tekst eller booleanske), men matematiske operationer tvinger automatisk de SANDE / FALSKE værdier til ens og nuller, så vi har:

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

Hvilket giver:

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

Med kun dette enkelt array, der skal behandles, summerer SUMPRODUCT varerne og returnerer resultatet.

Interessante artikler...