![](https://cdn.wiki-base.com/1654847/excel_formula_date_is_workday__2.png.webp)
Обща формула
=WORKDAY(date-1,1,holidays)=date
Обобщение
За да определите дали датата е работен ден или не, можете да използвате формула, базирана на функцията WORKDAY. В показания пример формулата в C5 е:
=WORKDAY(B5-1,1,holidays)=B5
където "празници" е наименуваният диапазон E5: E6.
Формулата по-горе връща TRUE, тъй като понеделник, 21 декември 2015 г. е работен ден.
Обяснение
Функцията WORKDAY изчислява дати в бъдещето или миналото, които са (по дефиниция) „работни дни“. С други думи, WORKDAY автоматично изключва почивните дни и (по желание) празниците. WORKDAY приема 3 аргумента: start_date, дни и (по желание) празници.
Тъй като искаме да проверим една дата и да получим TRUE или FALSE резултат, в идеалния случай бихме използвали WORKDAY с простата формула по-долу:
=WORKDAY(date,0)
Това обаче не работи, тъй като WORKDAY изглежда не оценява дата, когато няма компенсиране.
Решението е доставка (дата-1) за начална дата, 1 за дни и посоченият диапазон "празници" (E5: E6) за празници.
Това кара WORKDAY да отстъпи един ден назад, след това да добави 1 ден към резултата, като се вземат предвид почивните и празничните дни. На практика ние се "разиграва" WORKDAY в оценката на начална_дата .
Когато датата падне през уикенд или празник, WEEKDAY автоматично ще коригира датата напред към следващия работен ден.
И накрая, сравняваме първоначалната начална дата с резултата от функцията WORKDAY. Ако датите са едни и същи (т.е. резултатът от WORKDAY е равен на start_date, формулата връща TRUE. Ако не, формулата връща FALSE.
Уверете се, че изчислената дата пада в работен ден
За да сте сигурни, че някоя изчислена дата се приземява в работен ден, можете да използвате следната формула:
=WORKDAY(calc_date-1,1,holidays)
Забележка - ако имате нужда от персонализирани уикенди, използвайте функцията WORKDAY.INTL.