Ближайший рабочий день в EXCEL с учетом праздников и переносов

Предположим, что счет за продукцию нужно выставлять только в рабочие дни, несмотря на дату доставки. Напишем формулу, которая определяет: если дата доставки попадает на выходной или праздничный день, то дата счета – следующий понедельник (или прошедшая пятница). Решение также учитывает рабочие субботы.


Решение этой задачи без учета праздников и переносов рассмотрено в статье Ближайший рабочий день .

В этой статье добавим два перечня дат: Праздники , т.е. праздничные дни, которые попадают на рабочие и Рабочие_дни , т.е. перенесенные рабочие дни, которые попадают на субботу. Перечни разместим на листе Календарь (см. Файл примера ).

Создадим через Диспетчер имен ( Формулы/ Определенные имена/ Диспетчер имен ) два динамических диапазона : Праздники =СМЕЩ(календарь!$A$3;;;СЧЁТЗ(календарь!$A$3:$A$31)) и Рабочие_дни =СМЕЩ(календарь!$D$3;;;СЧЁТЗ(календарь!$D$3:$D$31))

Если дата попадает на субботу (не рабочую), воскресенье или праздник, то нижеследующая формула возвращает дату следующего понедельника, точнее следующего рабочего дня : =ЕСЛИ(ЕНД(ВПР(A2;Рабочие_дни;1;ЛОЖЬ));РАБДЕНЬ(A2-1;1;Праздники);A2)

Другая формула возвращает дату прошедшей пятницы , точнее последнего рабочего дня перед датой =ЕСЛИ(ЕНД(ВПР(A2;Рабочие_дни;1;ЛОЖЬ)); ЕСЛИ(НЕ(ЕНД(ВПР(A2-1;Рабочие_дни;1;ЛОЖЬ)));A2-1;РАБДЕНЬ(A2+1;-1;Праздники)); A2)

Комментарии
Только для авторизованных пользователей

(только для авторизованных пользователей)

© Copyright 2013 - 2020 Excel2.ru. All Rights Reserved