Excel-formel: Räkna datum efter veckodag -

Innehållsförteckning

Generisk formel

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

Sammanfattning

För att räkna datum efter veckodag (dvs. räkna måndagar, tisdagar, onsdagar osv.) Kan du använda SUMPRODUCT-funktionen tillsammans med WEEKDAY-funktionen. I exemplet som visas är formeln i F4:

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

Obs: "datum" är det namngivna intervallet B4: B15.

Förklaring

Du kanske undrar varför vi inte använder COUNTIF eller COUNTIF? Dessa funktioner verkar vara den uppenbara lösningen. Men utan att lägga till en hjälpkolumn som innehåller ett vardagsvärde finns det inget sätt att skapa ett kriterium för COUNTIF för att räkna vardagar i ett intervall av datum.

Istället använder vi den mångsidiga SUMPRODUCT-funktionen, som hanterar arrays graciöst utan att behöva använda Control + Shift + Enter.

Vi använder SUMPRODUCT med bara ett argument, som består av detta uttryck:

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

Arbetar inifrån och ut, WEEKDAY-funktionen är konfigurerad med valfritt argument 2, vilket får den att returnera siffrorna 1-7 för dagarna måndag-söndag. Detta gör det lättare att lista dagarna i ordning med siffrorna i kolumn E i följd.

WEEKDAY utvärderar sedan varje datum i det angivna intervallet "datum" och returnerar ett nummer. Resultatet är en array som denna:

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

Siffrorna som returneras av WEEKDAY jämförs sedan med värdet i E4, vilket är 1:

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

Resultatet är en matris med SANT / FALSKA värden.

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

SUMPRODUCT fungerar bara med siffror (inte text eller booleaner) så vi använder det dubbla negativet för att tvinga de Sanna / FALSKA värdena till ens och nollor:

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

Med en enda matris att bearbeta summerar SUMPRODUCT objekten och returnerar resultatet, 3.

Hantera tomma datum

Om du har tomma celler i listan med datum får du felaktiga resultat, eftersom WEEKDAY-funktionen returnerar ett resultat även när det inte finns något datum. För att hantera tomma celler kan du justera formeln enligt följande:

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

Att multiplicera med uttrycket (datum "") är ett sätt att ta bort tomma celler.

Intressanta artiklar...