
Obecný vzorec
=WORKDAY(date-1,1,holidays)=date
souhrn
Chcete-li zjistit, zda je datum pracovním dnem nebo ne, můžete použít vzorec založený na funkci WORKDAY. V zobrazeném příkladu je vzorec v C5:
=WORKDAY(B5-1,1,holidays)=B5
kde „prázdniny“ je pojmenovaný rozsah E5: E6.
Výše uvedený vzorec vrací TRUE, protože pondělí 21. prosince 2015 je pracovní den.
Vysvětlení
Funkce WORKDAY vypočítá data v budoucnosti nebo v minulosti, která jsou (podle definice) „pracovní dny“. Jinými slovy, WORKDAY automaticky vylučuje víkendy a (volitelně) svátky. WORKDAY přijímá 3 argumenty: start_date, dny a (volitelně) svátky.
Protože chceme zkontrolovat jedno datum a získat TRUE nebo FALSE výsledek, v ideálním případě použijeme WORKDAY s jednoduchým vzorcem níže:
=WORKDAY(date,0)
To však nefunguje, protože se zdá, že WORKDAY nevyhodnocuje datum, kdy není k dispozici žádný offset.
Řešením je supply (date-1) pro start_date, 1 pro dny a pojmenovaný rozsah „svátky“ (E5: E6) pro svátky.
To způsobí, že WORKDAY o jeden den ustoupí a poté k výsledku přidá 1 den, přičemž zohlední víkendy a svátky. Efektivně, jsme „podvádět“ všední den do vyhodnocení START_DATE .
Když datum připadne na víkend nebo svátek, WEEKDAY automaticky upraví datum dopředu na další pracovní den.
Nakonec porovnáme původní start_date s výsledkem funkce WORKDAY. Pokud jsou data stejná (tj. Výsledek WORKDAY se rovná start_date, vrátí vzorec TRUE. Pokud ne, vrátí vzorec FALSE.
Zajistěte, aby vypočítané datum připadlo na pracovní den
Chcete-li zajistit, aby se vypočítané datum dostalo na pracovní den, můžete použít následující vzorec:
=WORKDAY(calc_date-1,1,holidays)
Poznámka - pokud potřebujete vlastní víkendy, použijte funkci WORKDAY.INTL.