![](https://cdn.wiki-base.com/1654847/excel_formula_date_is_workday__2.png.webp)
Загальна формула
=WORKDAY(date-1,1,holidays)=date
Резюме
Щоб визначити, чи є дата робочим днем чи ні, можна скористатися формулою на основі функції WORKDAY. У наведеному прикладі формула в С5 має вигляд:
=WORKDAY(B5-1,1,holidays)=B5
де "канікули" - це названий діапазон E5: E6.
Наведена формула повертає TRUE, оскільки понеділок, 21 грудня 2015 р., Є робочим днем.
Пояснення
Функція WORKDAY обчислює дати у майбутньому чи минулому, які є (за визначенням) "робочими днями". Іншими словами, WORKDAY автоматично виключає вихідні та (необов’язково) святкові дні. WORKDAY приймає 3 аргументи: дата_відпуску, дні та (необов'язково) свята.
Оскільки ми хочемо перевірити одну дату та отримати ІСТИННИЙ або НЕВИЩИЙ результат, ми б в ідеалі використовували WORKDAY з простою формулою нижче:
=WORKDAY(date,0)
Однак це не працює, оскільки WORKDAY, здається, не оцінює дату, коли відсутній зсув.
Рішенням є пропозиція (дата-1) для дати_початку, 1 для днів і названий діапазон "канікули" (E5: E6) для канікул.
Це призводить до того, що WORKDAY відступить на один день, а потім додає до результату 1 день, враховуючи вихідні та святкові дні. За суті, ми «обманюючи» трудодень в оцінці START_DATE .
Коли дата припадає на вихідні чи святкові дні, WEEKDAY автоматично регулює дату на наступний робочий день.
Нарешті, ми порівнюємо вихідну дату_початку з результатом функції WORKDAY. Якщо дати однакові (тобто результат WORKDAY дорівнює start_date, формула повертає TRUE. Якщо ні, формула повертає FALSE.
Переконайтеся, що розрахована дата припадає на робочий день
Щоб переконатися, що будь-яка розрахована дата приходить у робочий день, ви можете скористатися такою формулою:
=WORKDAY(calc_date-1,1,holidays)
Примітка - якщо вам потрібні власні вихідні, використовуйте функцію WORKDAY.INTL.