Функции и Формулы

WORKDAY — поиск ближайшего рабочего дня в Google таблицах

WORKDAY - поиск ближайшего рабочего дня в Google таблицах

Функция 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.

Применение данной функции не заканчивается на конкретных примерах и распространяется на огромное количество ситуаций при работе с датами.
Преимущество функции в том, что в отличии от других аналогичных функций — можно контролировать фильтр конкретных дат для исключений.

Статьи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *