Как рассчитать последний день месяца в Excel
Часто в процессе работы с датами возникает необходимость динамического определения даты и последнего дня недели в месяце. Естественно можно просто посмотреть в обычный календарь, но для автоматизации некоторых задач в Excel с помощью формул нужно динамически получить дату последнего месяца особенно в феврале и определить день недели. Ведь у високосного года (366) месяц февраль имеет 29 дней, а в обычном году – 28.
Сколько дней в феврале для любого года и любой даты?
Для начала рассмотрим, как вычислить дату последнего дня февраля месяца для любого года, чтобы определить високосный год или нет:
Анализируя пример на данном рисунке, следует помнить, что данную формулу можно применять для любого месяца, чтобы получить дату последнего дня, а не только для февраля. Иначе она выглядела бы так:
=ДАТА(ГОД(A2);3;0)
Функция ДАТА позволяет генерировать дату на лету с помощью трех аргументов:
- Год – можно указать любое число только лишь в диапазоне от 1900 и до 9999.
- Месяц – любое положительное или отрицательное число.
- День – любое положительное или отрицательное число.
Например, если в третьем аргументе указано число 0 как номер дня, Excel вычислит дату последнего дня из предыдущего месяца. Для наглядного примера составим формулу с числом 0, которая возвращает 29 февраля 2000-го года:
=ДАТА(2000;3;0)
В следующем примере формулы вместо ввода статических значений в первые 2 аргумента функции ДАТА (год и месяц), используется функция ГОД, которая возвращает годы с исходных дат. Аналогично используется функция МЕСЯЦ возвращающая порядковый номер месяца в году из исходной даты. К этому номеру в формуле добавляется число 1. Благодаря чему мы получаем номер следующего месяца. Так как в третьем аргументе стоит число 0, автоматически получаем порядковый номер последнего дня в текущем месяце, который нас интересует.
Какой день недели для последнего дня месяца?
На этом рисунке ниже показано, как вычислить день недели и дату последнего дня февраля для любого года:
Формула состоит из двух частей, разделенных соединяющим оператором амперсантом (&" - "&):
- В первой части функция ТЕКСТ преобразует числовое значение, которое возвращает функция ДАТА в формат даты. Он указано во втором аргументе функции – "дд.мм.гг"
- Во второй части функция ТЕКСТ определяет день недели для исходной даты в первом ее аргументе, с помощью формата ячеек "дддд" указанном во втором аргументе.
Пример использования функции КОНМЕСЯЦА
В новых версиях Excel предусмотрена функция КОНМЕСЯЦА, которая служит альтернативным решением для выше описанной формулы:
Благодаря функции КОНМЕСЯЦА можно определять дату для текущего, предыдущего или будущего месяца заполнив лишь только 2 аргумента:
- Нач_дата – исходная дата или ссылка на нее.
- Число_месяцев – порядковый номер месяца начиная от исходной даты. Может быть любое положительное или отрицательное число. Примеры заполнения аргументов для функции КОНМЕСЯЦА, которая возвращает дату 29 февраля 2000-го года:
=КОНМЕСЯЦА("01.01.2000";1)
Если же мы укажем во втором аргументе отрицательное число, тогда функция возвращает нам дату последнего дня для предыдущего месяца:
=КОНМЕСЯЦА("01.03.2000";-1)
Разумеется, если мы указываем во втором аргументе число 0 тогда получим необходимое значение даты последнего дня для текущего месяца:
=КОНМЕСЯЦА("01.02.2000";0)
Как определить високосный год или нет в Excel?
Чтобы определить високосный год или нет в Excel существует множество решений. Вот несколько из них:
При работе с датами особую сложность предоставляет тот факт, что раз в 4-е года количество дней в году составляет 366, тогда как в обычных годах 365. Поэтому иногда приходится воспользоваться вышеописанными примерами и формулами для различных вычислений в Excel.