Разные компании по-разному справляются со своей рабочей нагрузкой. Некоторые компании привязаны к обычному calendar, где «рабочий месяц» начинается с первого и заканчивается в последний рабочий день месяца. Другие компании корректируют месячные даты начала и окончания для удовлетворения конкретных потребностей бухгалтерского учета или других целей.

Возможно, вам потребуется определить конкретную дату закрытия на месяц. Используя несколько функций из пакета Excel Analysis ToolPak, вы можете быстро решить эту задачу.

Основная используемая функция — это РАБДЕНЬ. Эта функция позволяет определить конкретный рабочий день до или после даты начала. Например, если вам нужно знать рабочий день за три дня до сегодняшнего дня, вы можете использовать функцию следующим образом:

=WORKDAY(TODAY(),-3)

Первый аргумент РАБДЕНЬ — это функция СЕГОДНЯ, которая предоставляет сегодняшнюю дату. Второй аргумент указывает, сколько дней до или после сегодняшнего дня вы хотите. Помните, что WORKDAY возвращает только фактические рабочие дни с понедельника по пятницу. (Ну, он возвращает даты для этих рабочих дней. Это не похоже на функцию WEEKDAY, которая возвращает от 0 до 7 для дня недели.) В этом конкретном случае, если сегодня вторник, то за три рабочих дня до вторника будет четверг, а РАБДЕНЬ возвращает дату этого четверга.

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

=EOMONTH(TODAY(),0)

Первый аргумент EOMONTH — это функция TODAY, которая, опять же, предоставляет сегодняшнюю дату. Второй аргумент указывает, на сколько месяцев до или после этой даты вы хотите завершить месяц. Поскольку аргумент равен 0, это использование EOMONTH возвращает последний день текущего месяца.

Если вы объедините РАБДЕНЬ и EOMONTH, вы можете определить третий рабочий день до конца текущего месяца следующим образом:

=WORKDAY(EOMONTH(TODAY(),0),-3)

Если вы хотите вычислить третий рабочий день до конца другого месяца, просто замените функцию СЕГОДНЯ на дату того месяца, который вам нужен. Например, если ячейка C2 содержит дату, и вы хотите узнать третий рабочий день до конца месяца этой даты, вы должны использовать следующее:

=WORKDAY(EOMONTH(C2,0),-3)

Следует отметить, что эта формула фактически возвращает третий рабочий день перед последним днем ​​месяца, а не третий рабочий день перед последним рабочим днем ​​месяца. Это, конечно, имеет значение, когда мы имеем дело с месяцами, заканчивающимися в субботу или воскресенье. Если месяц заканчивается в субботу или воскресенье, функция возвращает за три рабочих дня до этой даты, то есть в среду. Однако если вам нужна дата за три дня до последнего рабочего дня (то есть пятницы), вам на самом деле нужен вторник, а не среда.

В этом случае формула становится намного сложнее, потому что теперь вам нужно проверить, является ли фактический конец месяца субботой или воскресеньем.

Опять же предполагая, что вы основываете все на дате в C2, вы можете использовать следующую формулу:

=IF(OR(WEEKDAY(EOMONTH(C2,0))=1,WEEKDAY(EOMONTH(C2,0))=7), WORKDAY(WORKDAY(EOMONTH(C2,0),-1),-3), WORKDAY(EOMONTH(C2,0),-3))

Если конец месяца в C2 — суббота (7) или воскресенье (1), то формула вычисляет рабочий день за день до этого (пятница), а затем вычисляет рабочий день за три дня до этого. В противном случае используется обычная формула для расчета третьего предыдущего рабочего дня.

Если вы хотите, чтобы формула была еще более удобной, помните, что РАБДЕНЬ также может компенсировать набор праздников. Самый простой способ разрешить праздники — поместить даты набора праздников в именованный диапазон (например, «Праздники»), а затем добавить третий параметр к функции РАБДЕНЬ, как показано здесь:

=WORKDAY(EOMONTH(C2,0),-3,Holidays)

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3287) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Monthly_Close-Out_Dates [Ежемесячные даты закрытия].