Оглавление
В учебнике рассказывается о функциях Excel MONTH и EOMONTH. Вы найдете множество примеров формул, демонстрирующих, как извлечь месяц из даты в Excel, получить первый и последний день месяца, преобразовать название месяца в число и многое другое.
В предыдущей статье мы рассмотрели различные формулы для расчета дней недели. Сегодня мы будем оперировать более крупными единицами времени и изучим функции, которые Microsoft Excel предоставляет для месяцев.
В этом учебнике вы узнаете:
Функция Excel МЕСЯЦ - синтаксис и применение
Microsoft Excel предоставляет специальную функцию MONTH для извлечения месяца из даты, которая возвращает номер месяца в диапазоне от 1 (январь) до 12 (декабрь).
Функция MONTH может использоваться во всех версиях Excel 2016 - 2000, а ее синтаксис настолько прост, насколько это вообще возможно:
MONTH(serial_number) Где серийный_номер
это любая действительная дата месяца, которую вы пытаетесь найти.
Для корректной работы формул Excel MONTH дату следует вводить с помощью функции DATE(год, месяц, день). Например, формула =MONTH(DATE(2015,3,1))
возвращает 3, поскольку DATE представляет собой 1 день марта 2015 года.
Формулы типа =MONTH("1-Mar-2015")
также работают нормально, хотя в более сложных сценариях могут возникнуть проблемы, если даты вводятся в виде текста.
На практике вместо того, чтобы указывать дату в функции MONTH, удобнее обратиться к ячейке с датой или предоставить дату, возвращаемую какой-либо другой функцией. Например:
=MONTH(A1)
- возвращает месяц даты в ячейке A1.
= МЕСЯЦ(СЕГОДНЯ())
- возвращает номер текущего месяца.
На первый взгляд, функция Excel MONTH может показаться простой, но посмотрите на приведенные ниже примеры, и вы будете поражены, узнав, сколько полезных вещей она может сделать.
Как получить номер месяца из даты в Excel
Существует несколько способов получения месяца из даты в Excel. Какой из них выбрать, зависит от того, какого именно результата вы хотите добиться.
Функция MONTH в Excel - получение номера месяца из даты
Это самый очевидный и простой способ преобразования даты в месяц в Excel. Например:
= МОНТ(A2)
- возвращает месяц даты в ячейке A2.=MONTH(DATE(2015,4,15))
- возвращается 4, соответствующий апрелю.=MONTH("15-Apr-2015")
- очевидно, возвращает и номер 4.
Функция ТЕКСТ в Excel - извлечение месяца в виде текстовой строки
Альтернативным способом получения номера месяца из даты в Excel является использование функции ТЕКСТ:
=TEXT(A2, "m")
- возвращает номер месяца без ведущего нуля, как 1 - 12.=TEXT(A2, "мм")
- возвращает номер месяца с ведущим нулем, как 01 - 12.
Пожалуйста, будьте очень осторожны при использовании формул ТЕКСТ, поскольку они всегда возвращают номера месяцев в виде текстовых строк. Поэтому, если вы планируете выполнять дальнейшие вычисления или использовать возвращенные числа в других формулах, лучше придерживаться функции Excel МОНТ.
На следующем снимке экрана показаны результаты, полученные с помощью всех вышеперечисленных формул. Обратите внимание на выравнивание вправо чисел, возвращаемых функцией MONTH (ячейки C2 и C3), в отличие от выравнивания влево текстовых значений, возвращаемых функцией TEXT (ячейки C4 и C5).
Как извлечь название месяца из даты в Excel
Если вы хотите получить название месяца, а не число, вы снова используете функцию TEXT, но уже с другим кодом даты:
=TEXT(A2, "mmm")
- возвращает сокращенное название месяца, как Jan - Dec.=TEXT(A2, "mmmm")
- возвращает полное название месяца, как январь - декабрь.
Если вы не хотите преобразовывать дату в месяц в рабочем листе Excel, вам достаточно просто отображение названия месяца только вместо полной даты, то вам не нужны никакие формулы.
Выберите ячейку(и) с датами, нажмите Ctrl+1, чтобы открыть ячейку(и). Форматирование ячеек диалог. На Номер выберите Пользовательский и введите "mmm" или "mmmm" в строке Тип в поле для отображения сокращенного или полного названия месяца соответственно. В этом случае ваши записи останутся полнофункциональными датами Excel, которые можно использовать в вычислениях и других формулах. Подробнее об изменении формата даты см. в разделе Создание пользовательского формата даты в Excel.
Как преобразовать номер месяца в название месяца в Excel
Предположим, у вас есть список чисел (от 1 до 12) в рабочем листе Excel, которые вы хотите преобразовать в названия месяцев. Для этого вы можете использовать любую из следующих формул:
Чтобы вернуть сокращенное название месяца (янв - дек):
=TEXT(A2*28, "mmm")
=TEXT(DATE(2015, A2, 1), "ммм")
Чтобы вернуть полное название месяца (январь - декабрь):
=TEXT(A2*28, "mmmm")
=TEXT(DATE(2015, A2, 1), "mmmm")
Во всех приведенных выше формулах A2 - это ячейка с номером месяца. И единственное реальное различие между формулами - это коды месяцев:
- "mmm" - 3-буквенная аббревиатура месяца, например, Jan - Dec
- "мммм" - месяц пишется полностью
- "ммммм" - первая буква названия месяца
Как работают эти формулы
При использовании вместе с кодами формата месяца, такими как "mmm" и "mmmm", Excel рассматривает число 1 как день 1 в январе 1900 г. Умножая 1, 2, 3 и т.д. на 28, вы получаете дни 28, 56, 84 и т.д. года 1900, которые приходятся на январь, февраль, март и т.д. Код формата "mmm" или "mmmm" отображает только название месяца.
Как преобразовать название месяца в число в Excel
Есть две функции Excel, которые могут помочь вам преобразовать названия месяцев в числа - DATEVALUE и MONTH. Функция Excel DATEVALUE преобразует дату, сохраненную в виде текста, в порядковый номер, который Microsoft Excel распознает как дату. Затем функция MONTH извлекает номер месяца из этой даты.
Полная формула выглядит следующим образом:
=MONTH(DATEVALUE(A2 & "1"))
Где A2 - ячейка, содержащая название месяца, которое вы хотите превратить в число (& "1" добавляется для того, чтобы функция DATEVALUE поняла, что это дата).
Как получить последний день месяца в Excel (функция EOMONTH)
Функция EOMONTH в Excel используется для возврата последнего дня месяца на основе указанной начальной даты. Она имеет следующие аргументы, оба из которых являются обязательными:
EOMONTH(начальная_дата, месяцы)- Начальная_дата - начальную дату или ссылку на ячейку с начальной датой.
- Месяцы - количество месяцев до или после начальной даты. Используйте положительное значение для будущих дат и отрицательное - для прошлых.
Вот несколько примеров формулы ЭОМОНТ:
=EOMONTH(A2, 1)
- возвращает последний день месяца, через месяц после даты в ячейке A2.
=EOMONTH(A2, -1)
- возвращает последний день месяца, за месяц до даты в ячейке A2.
Вместо ссылки на ячейку вы можете ввести дату в формулу EOMONTH. Например, обе приведенные ниже формулы возвращают последний день апреля.
=EOMONTH("15-Apr-2015", 0)
=EOMONTH(DATE(2015,4,15), 0)
Чтобы вернуть последний день текущего месяца Вы используете функцию TODAY() в первом аргументе вашей формулы EOMONTH, чтобы сегодняшняя дата была принята за дату начала. И вы ставите 0 в поле месяцев
аргумент, потому что вы не хотите менять месяц в любом случае.
=EOMONTH(TODAY(), 0)
Примечание. Поскольку функция Excel EOMONTH возвращает порядковый номер, представляющий дату, вы должны применить формат даты к ячейке (ячейкам) с помощью ваших формул. Подробные шаги см. в разделе Как изменить формат даты в Excel.
А вот результаты, полученные с помощью формул Excel EOMONTH, рассмотренных выше:
Если вы хотите подсчитать, сколько дней осталось до конца текущего месяца, просто вычтите дату, возвращаемую функцией TODAY(), из даты, возвращаемой функцией EOMONTH, и примените формат General к ячейке:
=EOMONTH(TODAY(), 0)-TODAY()
Как найти первый день месяца в Excel
Как вы уже знаете, Microsoft Excel предоставляет только одну функцию для возврата последнего дня месяца (EOMONTH). Когда дело доходит до первого дня месяца, существует более одного способа получить его.
Пример 1. Получение 1-го дня месяца по номеру месяца
Если у вас есть номер месяца, то используйте простую формулу DATE, как показано ниже:
=ДАТА( год , номер месяца , 1)Например, =DATE(2015, 4, 1) вернет 1-апрель-15.
Если ваши числа расположены в определенном столбце, скажем, в столбце A, вы можете добавить ссылку на ячейку непосредственно в формулу:
= ДАТА(2015, B2, 1)
Пример 2. Получение 1-го дня месяца из даты
Если вы хотите вычислить первый день месяца на основе даты, вы можете снова использовать функцию Excel DATE, но на этот раз вам также понадобится функция MONTH для извлечения номера месяца:
=ДАТА( год , МЕСЯЦ( ячейка с датой ), 1)Например, следующая формула вернет первый день месяца на основе даты в ячейке A2:
=DATE(2015,MONTH(A2),1)
Пример 3. Найти первый день месяца на основе текущей даты
Если ваши расчеты основаны на сегодняшней дате, используйте связку Excel ЭОМОНТ и функции TODAY:
=EOMONTH(TODAY(),0) +1
- возвращается 1-го числа следующего месяца.
Как вы помните, мы уже использовали аналогичную формулу EOMONTH, чтобы получить последний день текущего месяца. А теперь просто добавьте 1 к этой формуле, чтобы получить первый день следующего месяца.
Аналогичным образом можно получить первый день предыдущего и текущего месяца:
=EOMONTH(TODAY(),-2) +1
- возвращает 1-е число предыдущего месяца.
=EOMONTH(TODAY(),-1) +1
- возвращает 1-е число текущего месяца.
Вы также можете использовать Excel ДАТА функцию для решения этой задачи, хотя формулы будут немного длиннее. Например, угадайте, что делает следующая формула?
=DATE(YEAR(TODAY()), MONTH(TODAY()), 1)
Да, он возвращает первый день текущего месяца.
А как заставить его возвращать первый день следующего или предыдущего месяца? Руки прочь :) Просто прибавьте или отнимите 1 к/от текущего месяца:
Вернуть в первый день следующего месяца:
=DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)
Чтобы вернуть первый день предыдущего месяца:
=DATE(YEAR(TODAY()), MONTH(TODAY())-1, 1)
Как рассчитать количество дней в месяце
В Microsoft Excel существует множество функций для работы с датами и временем. Однако в нем нет функции для подсчета количества дней в данном месяце. Поэтому нам придется восполнить это упущение с помощью собственных формул.
Пример 1. Получение количества дней на основе номера месяца
Если вы знаете номер месяца, то следующая формула DAY / DATE вернет количество дней в этом месяце:
=DAY(DATE( год , номер месяца + 1, 1) -1)В приведенной выше формуле функция DATE возвращает первый день следующего месяца, из которого вы вычитаете 1, чтобы получить последний день нужного вам месяца. Затем функция DAY преобразует дату в число дня.
Например, следующая формула возвращает количество дней в апреле (4-й месяц в году).
=DAY(DATE(2015, 4 +1, 1) -1)
Пример 2. Чтобы получить количество дней в месяце на основе даты
Если вы не знаете номер месяца, но имеете любую дату в пределах этого месяца, вы можете использовать функции ГОД и МЕСЯЦ для извлечения номера года и месяца из даты. Просто подставьте их в формулу ДЕНЬ / ДАТА, рассмотренную в примере выше, и она скажет вам, сколько дней содержит данный месяц:
=DAY(DATE(YEAR(A2), MONTH(A2) +1, 1) -1)
Где A2 - ячейка с датой.
В качестве альтернативы можно использовать гораздо более простую формулу DAY / EOMONTH. Как вы помните, функция Excel EOMONTH возвращает последний день месяца, поэтому вам не нужно никаких дополнительных вычислений:
=DAY(EOMONTH(A1, 0))
Следующий скриншот демонстрирует результаты, возвращаемые всеми формулами, и, как вы видите, они идентичны:
Как суммировать данные по месяцам в Excel
В большой таблице с большим количеством данных вам часто может понадобиться получить сумму значений за определенный месяц. И это может стать проблемой, если данные были введены не в хронологическом порядке.
Самое простое решение - добавить вспомогательный столбец с простой формулой Excel MONTH, которая будет преобразовывать даты в числа месяца. Скажем, если даты находятся в столбце A, вы используете =MONTH(A2).
А теперь запишите список чисел (от 1 до 12, или только те номера месяцев, которые вас интересуют) в пустой колонке, и суммируйте значения для каждого месяца с помощью формулы SUMIF, подобной этой:
=SUMIF(C2:C15, E2, B2:B15)
Где E2 - номер месяца.
На следующем снимке экрана показан результат расчетов:
Если вы предпочитаете не добавлять вспомогательный столбец в свой лист Excel, не беда, можно обойтись и без него. Более хитрая функция SUMPRODUCT будет работать на ура:
=SUMPRODUCT((МЕСЯЦ($A$2:$A$15)=$E2) * ($B$2:$B$15))
Где столбец A содержит даты, столбец B содержит значения для суммирования, а E2 - номер месяца.
Примечание. Имейте в виду, что оба приведенных выше решения суммируют все значения для данного месяца независимо от года. Поэтому, если ваш рабочий лист Excel содержит данные за несколько лет, все они будут суммированы.
Как условно отформатировать даты на основе месяца
Теперь, когда вы знаете, как использовать функции Excel MONTH и EOMONTH для выполнения различных вычислений в ваших рабочих листах, вы можете сделать еще один шаг вперед и улучшить визуальное представление. Для этого мы будем использовать возможности условного форматирования дат в Excel.
В дополнение к примерам, приведенным в вышеупомянутой статье, сейчас я покажу вам, как можно быстро выделить все ячейки или целые строки, относящиеся к определенному месяцу.
Пример 1. Выделите даты в текущем месяце
В таблице из предыдущего примера, предположим, вы хотите выделить все строки с датами текущего месяца.
Во-первых, вы извлекаете номера месяцев из дат в столбце A с помощью простейшей формулы =MONTH($A2). Затем вы сравниваете эти номера с текущим месяцем, полученным с помощью =MONTH(TODAY()). В результате вы получаете следующую формулу, которая возвращает TRUE, если номера месяцев совпадают, и FALSE в противном случае:
=MONTH($A2)=MONTH(TODAY())
Создайте правило условного форматирования Excel на основе этой формулы, и ваш результат может напоминать скриншот ниже (статья была написана в апреле, поэтому все апрельские даты выделены).
Пример 2. Выделение дат по месяцам и дням
И вот еще одна задача. Предположим, вы хотите выделить в своем рабочем листе основные праздники независимо от года. Скажем, дни Рождества и Нового года. Как бы вы подошли к решению этой задачи?
Просто используйте функцию Excel DAY для извлечения дня месяца (1 - 31) и функцию MONTH для получения номера месяца, а затем проверьте, равен ли DAY либо 25, либо 31, и равен ли MONTH 12:
=AND(OR(DAY($A2)=25, DAY($A2)=31), MONTH(A2)=12)
Вот как работает функция MONTH в Excel. Оказывается, она гораздо более универсальна, чем кажется, да?
В нескольких следующих постах мы будем вычислять недели и годы, и, надеюсь, вы узнаете еще несколько полезных приемов. Если вас интересуют более мелкие единицы измерения времени, ознакомьтесь с предыдущими частями нашей серии Excel Dates (ссылки вы найдете ниже). Я благодарю вас за чтение и надеюсь увидеть вас на следующей неделе!