
Общая формула
=WORKDAY(date-1,1,holidays)=date
Резюме
Чтобы определить, является дата рабочим днем или нет, вы можете использовать формулу, основанную на функции РАБДЕНЬ. В показанном примере формула C5 имеет следующий вид:
=WORKDAY(B5-1,1,holidays)=B5
где «праздники» - именованный диапазон E5: E6.
Приведенная выше формула возвращает ИСТИНА, поскольку понедельник, 21 декабря 2015 г., является рабочим днем.
Объяснение
Функция РАБДЕНЬ вычисляет даты в будущем или прошлом, которые (по определению) являются «рабочими днями». Другими словами, РАБДЕНЬ автоматически исключает выходные и (необязательно) праздничные дни. WORKDAY принимает 3 аргумента: start_date, days и (необязательно) праздники.
Поскольку мы хотим проверить одну дату и получить ИСТИНА или ЛОЖЬ результат, в идеале мы должны использовать РАБДЕНЬ с простой формулой ниже:
=WORKDAY(date,0)
Однако это не работает, поскольку WORKDAY, похоже, не оценивает дату при отсутствии смещения.
Решением является поставка (date-1) для start_date, 1 для дней и именованный диапазон «праздников» (E5: E6) для праздников.
Это заставляет WORKDAY отступить на один день назад, а затем добавить 1 день к результату с учетом выходных и праздничных дней. Фактически, мы «обманываем» WORKDAY, оценивая start_date .
Когда дата приходится на выходные или праздничные дни, WEEKDAY автоматически переносит дату на следующий рабочий день.
Наконец, мы сравниваем исходную start_date с результатом функции WORKDAY. Если даты совпадают (т.е. результат РАБДЕНЬ равен start_date, формула возвращает ИСТИНА. Если нет, формула возвращает ЛОЖЬ.
Убедитесь, что расчетная дата приходится на рабочий день
Чтобы рассчитанная дата приходилась на рабочий день, можно использовать следующую формулу:
=WORKDAY(calc_date-1,1,holidays)
Примечание. Если вам нужны нестандартные выходные, используйте функцию РАБДЕНЬ.ИНТЛ.