Расчет первого рабочего дня месяца (Microsoft Excel)
Дэн настраивает рабочий лист для использования в своей компании, и ему нужен способ расчета первого рабочего дня месяца calendar. Он знает, как рассчитать первый день месяца, но, возможно, этот день выпадет на выходные или праздничные дни.
Есть несколько способов рассчитать первый рабочий день месяца. Следующая формула — хорошее место для начала:
=DATE(YEAR(A1),MONTH(A1),1)+CHOOSE(WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),1,0,0,0,0,0,2)
В этой формуле предполагается, что вам нужен первый день недели для месяца любого числа, указанного в ячейке A1. Таким образом, если дата в ячейке A1 — 26 марта 2011 г., формула предполагает, что вам нужен первый день недели марта 2011 г.
Если в вашей системе установлен пакет Analysis ToolPak, формула становится намного проще:
=WORKDAY(EOMONTH(A1,-1), 1)
Функция EOMONTH возвращает последний день месяца, предшествующий дате в ячейке A1, а затем функция WORKDAY возвращает первый день недели следующего месяца. Функция собрана таким образом (с использованием EOMONTH), потому что WORKDAY немного необычный; предполагается, что первый параметр — действительный рабочий день. Это означает, что он не проверяет, приходится ли дата, указанная в параметре, на рабочую неделю с понедельника по пятницу. Установив для параметра значение дня до месяца, в котором вы хотите определить первый рабочий день, и установив для второго параметра значение 1, функция вернет первый фактический день недели для желаемого месяца.
Функция РАБДЕНЬ также позволяет вам дополнительно указать, что праздники следует учитывать. Самый простой способ сделать это — создать список праздничных дат в диапазоне ячеек, а затем назвать этот диапазон. (Как вы называете диапазон, обсуждается в других выпусках ExcelTips.) Если вы дадите диапазону имя, например MyHolidays, то вы можете использовать следующую версию формулы:
=WORKDAY(EOMONTH(A1,-1), 1, MyHolidays)
Вот изящный трюк, если вы хотите рассчитать начальный рабочий день для любого месяца в году. Предположим, что ячейка A1 содержит год, например 2011, а ячейка A2 содержит номер месяца от 1 до 12, представляющий месяц, для которого вы хотите начать рабочий день. Затем вы можете использовать эту формулу, чтобы получить желаемую дату:
=WORKDAY(DATE(A1,1,0), A2, MyHolidays)
Способ использования функции ДАТА в этой формуле возвращает последний день года, предшествующий году, указанному в ячейке A1. Затем значение в A2 используется для перехода на это количество месяцев, а MyHolidays (как и раньше) учитывает любые праздники, которые могут произойти в этом месяце.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (10199) применим к Microsoft Excel 97, 2000, 2002 и 2003.
Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Calculating_the_First_Business_Day_of_the_Month [Расчет первого рабочего дня месяца]
.