Предположим, что счет за продукцию нужно выставлять только в рабочие дни, несмотря на дату доставки. Напишем формулу, которая определяет: если дата доставки попадает на выходной или праздничный день, то дата счета – следующий понедельник (или прошедшая пятница). Решение также учитывает рабочие субботы.
Решение этой задачи без учета праздников и переносов рассмотрено в статье Ближайший рабочий день .
В этой статье добавим два перечня дат: Праздники , т.е. праздничные дни, которые попадают на рабочие и Рабочие_дни , т.е. перенесенные рабочие дни, которые попадают на субботу. Перечни разместим на листе Календарь (см. Файл примера ).
Создадим через Диспетчер имен ( Формулы/ Определенные имена/ Диспетчер имен ) два динамических диапазона : Праздники =СМЕЩ(календарь!$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 - 2024 Excel2.ru. All Rights Reserved
Комментарии