Excel-formule: tel datums per dag van de week -

Generieke formule

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Samenvatting

Om datums per weekdag te tellen (dwz maandag, dinsdag, woensdag, enz.), Kunt u de functie SOMPRODUCT samen met de functie WEEKDAY gebruiken. In het getoonde voorbeeld is de formule in F4:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Opmerking: "datums" is het benoemde bereik B4: B15.

Uitleg

U vraagt ​​zich misschien af ​​waarom we geen AANTAL.ALS of AANTAL.ALS gebruiken? Deze functies lijken de voor de hand liggende oplossing. Zonder een hulpkolom toe te voegen die een weekdagwaarde bevat, is er echter geen manier om een ​​criterium te maken voor AANTAL.ALS om weekdagen in een datumbereik te tellen.

In plaats daarvan gebruiken we de veelzijdige SOMPRODUCT-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)=E4)

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 maakt het gemakkelijker om de dagen op volgorde te zetten met de nummers in kolom E op volgorde.

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

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

De getallen die door WEEKDAY worden geretourneerd, worden vervolgens vergeleken met de waarde in E4, die 1 is:

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

Het resultaat is een reeks TRUE / FALSE-waarden.

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

SUMPRODUCT werkt alleen met getallen (geen tekst of booleans), dus we gebruiken het dubbele negatief om de WAAR / ONWAAR waarden naar eenen en nullen te dwingen:

(1;0;0;1;0;0;0;1;0;0;0;0)

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

Omgaan met lege datums

Als u lege cellen in de lijst met datums heeft, krijgt u onjuiste resultaten, aangezien de functie WEEKDAY een resultaat retourneert, zelfs als er geen datum is. Om lege cellen af ​​te handelen, kunt u de formule als volgt aanpassen:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

Vermenigvuldigen met de uitdrukking (datums "") is een manier om lege cellen te annuleren.

Interessante artikelen...