
Bendroji formulė
=SUMPRODUCT((holidays>=start)*(holidays<=end))
Santrauka
Norėdami suskaičiuoti atostogas, vykstančias tarp dviejų datų, galite naudoti funkciją SUMPRODUCT.
Parodytame pavyzdyje formulė F8 yra:
=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))
Paaiškinimas
Ši formulė naudoja dvi išraiškas viename masyve funkcijos SUMPRODUCT viduje.
Pirmasis posakis patikrina kiekvieną atostogų datą, norėdamas sužinoti, ar ji yra didesnė ar lygi F5 pradžios datai:
(B4:B12>=F5)
Tai grąžina tokių TRUE / FALSE reikšmių masyvą:
(FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; TRUE)
Antrasis posakis patikrina kiekvieną atostogų datą, norėdamas sužinoti, ar ji yra mažesnė ar lygi F6 pabaigos datai:
(B4:B12<=F6)
kuris grąžina tokių TRUE / FALSE reikšmių masyvą:
(TIKRA; TIESA; TIESA; TIESA; TIESA; TIESA; TIESA; TIESA; NETIESA)
Padauginus šias dvi masyvas, TRUE / FALSE reikšmės automatiškai priverčiamos į vienetus ir nulius, todėl gaunami tokie masyvai:
=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))
Padauginę turime tik vieną tokį masyvą:
=SUMPRODUCT((0;0;0;0;1;1;1;1;0))
Galiausiai SUMPRODUCT sumuoja masyvo elementus ir pateikia 4.
Atostogos tik darbo dienomis
Norėdami suskaičiuoti atostogas, vykstančias tik darbo dienomis (pirmadieniais – penktadieniais), galite išplėsti formulę taip:
=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))
kur rng yra intervalas, kuriame pateikiamos atostogų datos.