Excel-formel: Tæl datoer efter ugedag -

Generisk formel

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

Resumé

For at tælle datoer efter hverdag (dvs. tælle mandage, tirsdage, onsdage osv.) Kan du bruge SUMPRODUCT-funktionen sammen med WEEKDAY-funktionen. I det viste eksempel er formlen i F4:

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

Bemærk: "datoer" er det navngivne interval B4: B15.

Forklaring

Du spekulerer måske på, hvorfor vi ikke bruger COUNTIF eller COUNTIFs? Disse funktioner virker som den oplagte løsning. Uden at tilføje en hjælpekolonne, der indeholder en hverdagsværdi, er der imidlertid ingen måde at oprette et kriterium for COUNTIF til at tælle hverdage i en række datoer.

I stedet bruger vi den alsidige 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)=E4)

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 gør det lettere at liste dagene i rækkefølge med numrene i kolonne E i rækkefølge.

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

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

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

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

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

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

SUMPRODUCT fungerer kun med tal (ikke tekst eller booleanske), så vi bruger dobbeltnegativet til at tvinge de SANDE / FALSKE værdier til ens og nuller:

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

Med en enkelt matrix, der skal behandles, summerer SUMPRODUCT varerne og returnerer resultatet, 3.

Håndtering af tomme datoer

Hvis du har tomme celler på listen over datoer, får du forkerte resultater, da WEEKDAY-funktionen returnerer et resultat, selv når der ikke er nogen dato. For at håndtere tomme celler kan du justere formlen som følger:

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

Multiplikation med udtrykket (datoer "") er en måde at annullere tomme celler på.

Interessante artikler...