Excel-formel: Sum etter ukedag -

Innholdsfortegnelse

Generisk formel

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

Sammendrag

For å summere data etter ukedag (dvs. sum av mandager, tirsdager, onsdager osv.), Kan du bruke SUMPRODUCT-funksjonen sammen med WEEKDAY-funksjonen.

I eksemplet vist er formelen i H4:

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

Forklaring

Du lurer kanskje på hvorfor vi ikke bruker SUMIF- eller SUMIFS-funksjonen? Disse ser ut til å være en åpenbar måte å oppsummere etter ukedagene. Uten å legge til en hjelpekolonne med en ukedagsverdi, er det imidlertid ingen måte å lage kriterier for SUMIF som tar hensyn til ukedagen.

I stedet bruker vi den praktiske SUMPRODUCT-funksjonen, som håndterer matriser elegant uten behov for å bruke Control + Shift + Enter.

Vi bruker SUMPRODUCT med bare ett argument, som består av dette uttrykket:

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

Arbeidet fra innsiden og ut er WEEKDAY-funksjonen konfigurert med valgfritt argument 2, som får den til å returnere tallene 1-7 for henholdsvis dagene mandag-søndag. Dette er ikke nødvendig, men det gjør det lettere å liste dagene i rekkefølge og plukke opp tallene i kolonne G i rekkefølge.

WEEKDAY evaluerer hver verdi i det valgte navnet "datoer" og returnerer et tall. Resultatet er en matrise som dette:

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

Tallene som returneres fra WEEKDAY sammenlignes deretter med verdien i G4, som er 1.

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

Resultatet er en matrise med SANNE / FALSE verdier.

(FALSK; FALSK; FALSK; SANT; FALSK; FALSK; FALSK; FALSK)

Deretter multipliseres denne matrisen med verdiene i det navngitte området "amts". SUMPRODUCT fungerer bare med tall (ikke tekst eller booleanere), men matteoperasjoner tvinger automatisk de SANTE / FALSE verdiene til ens og nuller, så vi har:

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

Som gir:

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

Med bare denne ene matrisen å behandle, summerer SUMPRODUCT elementene og returnerer resultatet.

Interessante artikler...