Excel-kaava: Laske vapaapäivät kahden päivämäärän välillä

Yleinen kaava

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

Yhteenveto

Voit laskea kahden päivämäärän välillä olevat lomapäivät SUMPRODUCT-funktiolla.

Esitetyssä esimerkissä kaava kohdassa F8 on:

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

Selitys

Tämä kaava käyttää kahta lauseketta yhdessä taulukossa SUMPRODUCT-funktion sisällä.

Ensimmäinen lauseke testaa jokaisen lomapäivän sen selvittämiseksi, onko se suurempi tai yhtä suuri kuin F5: n aloituspäivä:

(B4:B12>=F5)

Tämä palauttaa taulukon TOSI / EPÄTOSI arvoja:

(EPÄTOSI; EPÄTOSI; EPÄTOSI; EPÄTOSI; TOSI; TOSI; TOSI; TOSI; TOSI)

Toinen lauseke testaa jokaisen lomapäivän ja tarkistaa, onko se pienempi tai yhtä suuri kuin F6: n lopetuspäivä:

(B4:B12<=F6)

joka palauttaa taulukon TOSI / EPÄTOSI arvoja seuraavasti:

(TOSI; TOSI; TOSI; TOSI; TOSI; TOSI; TOSI; TOSI; TOSI)

Näiden kahden matriisin kertominen pakottaa TOSI / EPÄTOSI-arvot automaattisesti yksiköiksi ja nolliksi, jolloin saadaan seuraavanlaiset taulukot:

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

Kertomisen jälkeen meillä on vain yksi tällainen taulukko:

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

Lopuksi SUMPRODUCT summaa matriisin kohteet ja palauttaa arvon 4.

Lomat vain arkisin

Jos haluat laskea vain arkipäivinä (ma-pe) tapahtuvat lomapäivät, voit laajentaa kaavaa seuraavasti:

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

missä rng on alue, joka sisältää lomapäivät.

Mielenkiintoisia artikkeleita...