Excel-formel: Räkna helgdagar mellan två datum -

Generisk formel

=SUMPRODUCT((holidays>=start)*(holidays<=end))

Sammanfattning

För att räkna helgdagar som inträffar mellan två datum kan du använda SUMPRODUCT-funktionen.

I exemplet som visas är formeln i F8:

=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))

Förklaring

Den här formeln använder två uttryck i en enda grupp i SUMPRODUCT-funktionen.

Det första uttrycket testar varje semesterdatum för att se om det är större än eller lika med startdatumet i F5:

(B4:B12>=F5)

Detta returnerar en array med SANT / FALSKA värden så här:

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

Det andra uttrycket testar varje semesterdatum för att se om det är mindre än eller lika med slutdatumet i F6:

(B4:B12<=F6)

som returnerar en matris med SANT / FALSKA värden så här:

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

Multiplikationen av dessa två matriser tvingar automatiskt TRUE / FALSE värden till en och nollor, vilket resulterar i matriser som ser ut så här:

=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))

Efter multiplikation har vi bara en matris så här:

=SUMPRODUCT((0;0;0;0;1;1;1;1;0))

Slutligen summerar SUMPRODUCT objekten i matrisen och returnerar 4.

Helgdagar endast på vardagar

För att räkna helgdagar som endast inträffar på vardagar (må-fre) kan du utöka formeln så här:

=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))

där rng är ett intervall som innehåller semesterdatum.

Intressanta artiklar...