Функция WORKDAY (РАБДЕНЬ) - Как найти ближайший рабочий день к заданной дате в Google таблицах?
У Вас появилась потребность быстро найти ближайший предыдущий или следующий рабочий день от определенной даты в Google Sheets.
Нужно определить дату рабочего дня через заданное количество дней так, чтобы показывался рабочий день перед, либо после выходных.
Такая потребность встречается весьма часто: в логистике при формировании отгрузок; либо при формировании рабочих смен выпусков продукции; и т.д.
Функция WORKDAY (РАБДЕНЬ) - синтаксис и основные правила работы в Google таблицах
Официальная справка гугл таблиц поясняет: функция WORKDAY (РАБДЕНЬ) рассчитывает и определяет дату через заданное пользователем количество дней.
=WORKDAY(start_date, num_days, [holidays]) - латинская версия =РАБДЕНЬ(начальная дата; число_дней; [праздничные дни]) - русская версия
- start_date (начальная дата) — обязательный аргумент функции. Дата начала отсчета. Задается в кавычках, либо может выступать ссылкой на ячейку с датой.
- num_days (число_дней) — обязательный аргумент функции. Количество дней, которое нужно отсчитать от значения start_date (начальная дата). Если значение отрицательное, то отсчет идет в обратную сторону. В качестве аргумента может выступать число, либо ссылка на ячейку с числом, функцией в числовом формате.
Учитывается только целая часть значения числа, дробная часть значения аргумента отсекается и не берется в расчет. Если num_days (число_дней) дней = 1,9, функция будет воспринимать = 1. - [holidays] ([праздничные дни]) — необязательный аргумент. Ссылка на ячейку, диапазон или массив константных значений праздничных дат (диапазон с праздниками).
Значения аргументов должны быть либо в формате даты, либо в числовом формате (в таком случае, Google Sheets автоматически преобразует число в дату и выдаст результат, логически отсчитав заданное num_days (число_дней) от start_date (начальная дата), с учетом праздников из диапазона [holidays] ([праздничные дни]).
Поиск ближайшего рабочего дня от определенной даты в Google Sheets
На примере ниже нужно найти ближайший рабочий день поставки от заданной даты, зная количество дней, за которое будет осуществляться данная поставка.
=WORKDAY(C6+D6-1;1)
- C6 — дата отсчета.
- D6 — количество дней доставки.
- —1 — процедура поиска текущей даты, которая не выпадает на субботу или воскресенье и ее смещение на предыдущий от этой даты день.
- 1 — смещение рабочего дня на один следующий рабочий день. Прием, при котором будет показана дата текущего рабочего дня, если она не выпадает на субботу или воскресенье.
Что произошло? Если прибавить к начальной дате просто 5 дней доставки — получится, что последний день выпадет на 6 августа 2023 года, а это — воскресенье. Функция WORKDAY отработала и показала первый рабочий день после выходного — понедельник 7 августа 2023 года.
Как найти ближайший рабочий день от заданной даты с учетом праздничных дней в Google таблицах?
На примере выше можно заметить, что в ячейке Е9 стоит 9 мая — праздничный день. Обычно, в праздничные дни все отдыхают и поставка не осуществляется. Как это учесть при поиске ближайшей рабочей даты после всех праздников?
Чтобы функция WORKDAY (РАБДЕНЬ) учитывала праздничные дни — нужно их определить в отдельном диапазоне, либо прямо в кавычках указать этот необязательный аргумент [holidays] ([праздничные дни]) в формуле функции.
На примере это — диапазон с датами $H$6:$H$8.
=WORKDAY(C9+D9-1;1;$H$6:$H$8)
- C9 — дата, с которой нужно отсчитать дня доставки.
- D9 — количество дней доставки.
- —1 — смещение даты рабочего дня на предыдущий.
- 1 — смещение даты рабочего дня на следующий, чтобы отобразить текущую дату, если она не выпадает на выходные.
- $H$6:$H$8 — диапазон ячеек с указанными датами праздничных дней, превращенный в абсолютную ссылку.
Как использовать функцию WORKDAY (РАБДЕНЬ) в Google таблицах?
Рассмотрим реальный пример использования функции WORKDAY: найдем курс валют на определенную дату, исключая выходные (так как на выходных биржа не работает и сервис google finance может выдать ошибку вместо значения).
=INDEX(GOOGLEFINANCE('Настройки'!$D$7&'Настройки'!$E$7;"price";WORKDAY('Транзакции'!A15313+1;-1));2;2)
WORKDAY(‘Транзакции’!A15313+1;-1) — это и есть поиск даты ближайшей рабочей пятницы от заданной даты, находящейся в ячейке — ‘Транзакции’!A15313.
Применение данной функции не заканчивается на конкретных примерах и распространяется на огромное количество ситуаций при работе с датами.
Преимущество функции в том, что в отличии от других аналогичных функций — можно контролировать фильтр конкретных дат для исключений.