Excel-formule: som per weekdag -

Inhoudsopgave

Generieke formule

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

Samenvatting

Om gegevens per weekdag op te tellen (dwz som per maandag, dinsdag, woensdag, enz.), Kunt u de SOMPRODUCT-functie samen met de WEEKDAY-functie gebruiken.

In het getoonde voorbeeld is de formule in H4:

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

Uitleg

U vraagt ​​zich misschien af ​​waarom we de functie SUMIF of SUMIFS niet gebruiken? Dit lijkt een voor de hand liggende manier om de dagen van de week op te tellen. Zonder een hulpkolom met een weekdagwaarde toe te voegen, is er echter geen manier om een ​​criterium voor SUMIF te maken dat rekening houdt met de weekdag.

In plaats daarvan gebruiken we de handige SUMPRODUCT-functie, die arrays netjes afhandelt zonder dat we Control + Shift + Enter hoeven te gebruiken.

We gebruiken SOMPRODUCT met slechts één argument, dat uit deze uitdrukking bestaat:

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

Werkend van binnen naar buiten, is de WEEKDAY-functie geconfigureerd met het optionele argument 2, waardoor het respectievelijk de nummers 1-7 voor de dagen maandag-zondag retourneert. Dit is niet nodig, maar het maakt het gemakkelijker om de dagen op volgorde te zetten en de nummers in kolom G achter elkaar op te halen.

WEEKDAY evalueert elke waarde in het benoemde bereik "datums" en retourneert een getal. Het resultaat is een array als deze:

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

De cijfers die door WEEKDAY worden geretourneerd, worden vervolgens vergeleken met de waarde in G4, namelijk 1.

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

Het resultaat is een reeks TRUE / FALSE-waarden.

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

Vervolgens wordt deze array vermenigvuldigd met de waarden in het benoemde bereik "amts". SUMPRODUCT werkt alleen met getallen (niet met tekst of booleans), maar wiskundige bewerkingen dwingen automatisch de WAAR / ONWAAR waarden naar eenen en nullen, dus we hebben:

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

Wat levert:

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

Met slechts deze enkele array om te verwerken, telt SOMPRODUCT de items op en retourneert het resultaat.

Interessante artikelen...