Функция КОНМЕСЯЦА в Excel предназначена для определения числа, соответствующего номеру последнего дня в месяце, который отстоит на определенное число месяцев относительно даты, указанной как точка отсчета в виде первого аргумента этой функции.
Содержание
- Как получить последний день месяца по дате в Excel
- Как определить последнее воскресенье мая месяца в Excel
- Правила использования функции КОНМЕСЯЦА в Excel
- Первый день месяца в Excel
- Последний день месяца в Excel
Как получить последний день месяца по дате в Excel
Поскольку каждый из месяцев года имеет определенное число дней (30 или 31), данная функция полезна для быстрого нахождения номера числа любого месяца. Единственным исключением является февраль – 28 дней. Однако, раз в 4 года этот месяц имеет 29 дней (если год високосный).
Пример 1. Вывести количество дней в каждом месяце 2019 года в отдельный столбец таблицы.
Вид таблицы данных:
Для расчета числа дней используем следующую формулу массива, предварительно выделив ячейки B2:B13:
В качестве даты как точки отсчета была указана 01.01.2019 (первый день текущего года). Для расчета числа дней первого и последующих месяцев была вычтена 1 (если второй аргумент функции КОНМЕСЯЦА принимает значение 0, определяется число дней текущего месяца). Функция ТЕКСТ используется для преобразования полученного значения и вывода только числа дней (формат «ДД»).
Важный момент! Чтобы выполнять арифметические операции со значениями, которые возвращает данная формула следует использовать функцию ЗНАЧЕН. Она позволит преобразовать текст в числовое значение:
На этот раз мы использовали формулу массива, которую следует вводить через комбинацию клавиш CTRL+SHIFT+Enter для подверженная. Таким образом перед суммированием функцией СУММ значение из каждой ячейки преобразуется в число с помощью функции ЗНАЧЕН.
Как определить последнее воскресенье мая месяца в Excel
Пример 2. Использовать формулы, включающие функцию КОНМЕСЯЦА, для определения следующих значений:
- Каким днем недели является последний день мая месяца текущего года?
- Какой номер дня соответствует последнему воскресению мая месяца в текущем году?
Для будущей проверки результатов вычисления формул сразу уточним, что на момент написания данного урока на дворе шел 2019-й год.
Для нахождения последнего дня мая месяца для текущего года используем следующую формулу:
Функция ТЕКСТ используется для преобразования данных (вывода текстового представления дня недели). Функция ДЕНЬНЕД возвращает числовое значение дня недели (от 1 до 7). Функция КОНМЕСЯЦА вычисляет дату последнего дня текущего месяца (аргументы СЕГОДНЯ и 0 соответственно).
Для нахождения дня, соответствующего последнему воскресению в мае месяце текущего года используем формулу:
Чтобы убедиться, что был получен корректный результат, используем формулу для проверки последнего понедельника мая месяца в текущем году. В ячейке B9 водим формулу:
Правила использования функции КОНМЕСЯЦА в Excel
Функция имеет следующий синтаксис:
- нач_дата – обязательный, принимает значения формата Дата, используемые как точка отсчета, относительно которой будет найден месяц, для которого требуется определить номер последнего дня;
- число_месяцев – обязательный, принимает числовое значение, характеризующее количество месяцев, которые требуется прибавить или вычесть, чтобы найти месяц, для которого определяется номер последнего дня.
- В качестве аргумента нач_дата вводят данные, являющиеся результатом вычислений функций, работающих с датами (например, =ДАТА(2019;06;12). Вводить даты как текст не рекомендуется, поскольку это может привести к возникновению ошибок. Например, не следует указывать даты следующим способом — =КОНМЕСЯЦА(“12.06.2019”;3).
- Если в качестве аргумента число_месяцев указано дробное число, функция КОНМЕСЯЦА усекает дробную часть. Например, =КОНМЕСЯЦА(СЕГОДНЯ();1,89) и КОНМЕСЯЦА(СЕГОДНЯ();1) выполнятся, вернув одинаковый результат.
- Если первый аргумент рассматриваемой функции принимает значение, которое не может быть преобразовано к формату данных Дата, результатом выполнения будет код ошибки #ЗНАЧ!. Аналогичная ошибка возникнет, если второй аргумент указан не преобразуемыми к числовому значению данными. Промежуточные преобразования не выполняются даже над данными логического типа. Например, =КОНМЕСЯЦА(СЕГОДНЯ;ИСТИНА) выполнится с ошибкой.
- Аргумент число_месяцев может принимать следующие числовые данные:
- a. Из диапазона отрицательных значений – определение месяца из прошедших дат (например, =КОНМЕСЯЦА(СЕГОДНЯ();-3) – определение числа дней в месяце, который отстоит на 3 месяца от текущего);
- b. Из диапазона положительных значений – последующие даты;
- c. 0 – текущий месяц.
Первый день месяца можно определить с помощью функции ДАТА() или КОНМЕСЯЦА() .
Если ячейка А2 содержит дату, то нижеследующие формулы вернут первый день месяца этой даты (см. файл примера ):
Если А2 содержит дату, а B2 число месяцев, то формула
=ДАТА(ГОД(A2);МЕСЯЦ(A2)+B2;1)
вернет первое число месяца, отстоящего от исходного на число месяцев из ячейки B2 (т.е. если А2 содержит 05/08/1999, а B2 – 3, то результат будет = 01/11/1999).
Тот же результат вернет формула
Последний день месяца определяется в статье Последний день месяца.
Формулы для определения первого и последнего дней месяца от текущей или произвольной даты. Использовать можно в шаблонах различных документов и отчетов, при заполнении которых требуется отобразить интервал дат с участием первого и(или) последнего дня месяца.
Первый день месяца в Excel
Для формулы, преобразующей текущую или другую дату в первый день месяца, используем функции «ДАТА», «ГОД» и «МЕСЯЦ»:
- Первый день текущего месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1)
- Первый день прошлого месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())-1;1)
- Первый день текущего месяца предыдущего года от текущей даты: =ДАТА(ГОД(СЕГОДНЯ())-1;МЕСЯЦ(СЕГОДНЯ());1)
- Первый день месяца от произвольной даты, записанной в ячейку «A1»: =ДАТА(ГОД(A1);МЕСЯЦ(A1);1)
Определить первый день месяца можно не только для прошедших периодов, но и для будущих, прибавив соответствующее количество лет или месяцев в формулу.
Последний день месяца в Excel
Для определения последнего месяца от текущей или произвольной даты в Excel, начиная с версии 2007 года, существует функция «КОНМЕСЯЦА» с двумя аргументами: «Начальная дата» и «Количество месяцев». Если «Количество месяцев» равно 0, то будет возвращен последний день того месяца, который содержится в аргументе «Начальная дата».
Примеры для Excel 2007-2016:
- Последний день текущего месяца от текущей даты: =КОНМЕСЯЦА(СЕГОДНЯ();0)
- Последний день прошлого месяца от текущей даты: =КОНМЕСЯЦА(СЕГОДНЯ();-1)
- Последний день текущего месяца предыдущего года от текущей даты: =КОНМЕСЯЦА(СЕГОДНЯ();-12)
- Последний день месяца от произвольной даты, записанной в ячейку «A1»: =КОНМЕСЯЦА(A1;0)
Функция «КОНМЕСЯЦА» возвращает значение в числовом виде, поэтому для правильного отображения последнего дня месяца следует к ячейке с формулой применить формат даты.
В версиях Excel по 2003 год функция «КОНМЕСЯЦА» по-умолчанию отсутствует, поэтому будем применять формулу, составленную, как и для первого дня месяца, из функций «ДАТА», «ГОД» и «МЕСЯЦ».
Примеры для Excel 2000-2003:
- Последний день текущего месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;0)
- Последний день прошлого месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());0)
- Последний день текущего месяца предыдущего года от текущей даты: =ДАТА(ГОД(СЕГОДНЯ())-1;МЕСЯЦ(СЕГОДНЯ())+1;0)
- Последний день месяца от произвольной даты, записанной в ячейку «A1»: =ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;0)
Не перепутайте в этих формулах вычитаемое или добавляемое количество месяцев, так как для определения последнего дня месяца, содержащегося в исходной дате, приходится текущий месяц увеличивать на единицу, чтобы вернуться к последнему дню из следующего месяца, указав количество дней равное нулю.
Как вариант, для определения последнего дня месяца можно использовать формулу, возвращающую первый день следующего месяца, из значения которой вычитается единица: =ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;1)-1
Определение первого и последнего дня месяца имеет большую актуальность для автоматического заполнения интервала дат в диалоговых формах с помощью VBA Excel.
Источник: