Первый день месяца можно определить с помощью функции
ДАТА()
или
КОНМЕСЯЦА()
.
Если ячейка
А2
содержит дату, то нижеследующие формулы вернут первый день месяца этой даты (см.
файл примера
):
=КОНМЕСЯЦА(A2;-1)+1
=ДАТА(ГОД(A2);МЕСЯЦ(A2);1)
Если
А2
содержит дату, а
B
2
число месяцев, то формула
=ДАТА(ГОД(A2);МЕСЯЦ(A2)+B2;1)
вернет первое число месяца, отстоящего от исходного на число месяцев из ячейки
B
2
(т.е. если
А2
содержит 05/08/1999, а
B
2
– 3, то результат будет = 01/11/1999).
Тот же результат вернет формула
=КОНМЕСЯЦА(A2;B2-1)+1
Последний день месяца определяется в статье
Последний день месяца
.
Формулы для определения первого и последнего дней месяца от текущей или произвольной даты. Использовать можно в шаблонах различных документов и отчетов, при заполнении которых требуется отобразить интервал дат с участием первого и(или) последнего дня месяца.
Для формулы, преобразующей текущую или другую дату в первый день месяца, используем функции «ДАТА», «ГОД» и «МЕСЯЦ»:
- Первый день текущего месяца от текущей даты:
=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());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.
В этой статье мы посмотрим как по дате можно вернуть первое число данного месяца в Excel.
В комментариях к данной статье дали 2 более удобных способа:
=ДАТА(ГОД(E7);МЕСЯЦ(E7);1)
=КОНМЕСЯЦА(E7;-1)+1
То есть, например у нас есть ячейка с произвольной датой — например 30.08.2016. Нам необходимо по данной дате с помощью формул найти 01.08.2016 года. Стандартными способами я не нашел как это можно сделать. Можно по дате найти месяц, а вот первое число данного месяца нет.
В комментария задали вопрос, который и сподвиг написать данную статью о том как найти первое число месяца по дате.
Добрый день. Как написать формулу, где в двух ячейках нужно указать начало месяца и конец этого месяца, конец месяца он берет автоматически из другой ячейки (то есть она уже задаётся). Написал формулу ячейки дата -30, но когда в месяце 30 дней это формула не годиться (получается конец предыдущего месяца).
Решение задачи будет выглядеть следующим образом.
=ЗНАЧЕН("01."&ТЕКСТ(A1;"ММ")&"."&ТЕКСТ(A1;"ГГГГ"))
Где в A1 — дата, по которой нам необходимо определить 1 число этого месяца.
Суть решения задачи следующая:
1. Находим месяц указанной даты. Указав «ММ» — мы найдем месяц в формате двух чисел. Так, например август месяц будет 08, а не просто 8
ТЕКСТ(A1;"ММ")
2. Находим год указанной даты в формате 4-х чисел. В нашем случае это 2016
ТЕКСТ(A1;"ГГГГ")
3. С помощью знака & склеиваем первое число месяца 01 с полученными данными
01.+08+"."+2016
В итоге мы получаем 01.08.2016 — но это еще только текст. Чтобы он преобразовался в дату. Выражение нужно вставить в функцию ЗНАЧЕН()
Я уже тут писал о том, как получить первое число месяца в Transact-SQL. Сейчас напишу как это сделать в Excel’e.
Существуют много способов сделать это. Мне нравятся два из них:
1) От исходной даты вычитаем номер дня в месяце – получаем последний день месяца предшествующий месяцу исходной даты. К этому результату прибавляем один день. Эта дата и будет нашим результатом. Формула для этого способа: “=A1-ДЕНЬ(A1)+1″.
2) С помощью функции ДАТА(год;месяц;день) и из составляющих исходной даты (год и месяц) получаем первое число: “=ДАТА(ГОД(A1);МЕСЯЦ(A1);1)”.
Содержание:
- Получите первый день месяца, используя EOMONTH
- Получите первый день месяца по формуле ДАТА / ДЕНЬ
- Получите первый понедельник месяца
Иногда вам может потребоваться знать, какой первый день месяца в зависимости от заданной даты.
Когда нет специальной функции для получения первого дня определенного месяца, вы можете легко найти обходной путь.
В этом руководстве по Excel я покажу вам очень простую формулу, которую вы можете использовать для получить первый день месяца в Excel на основе заданной даты.
Итак, приступим!
Получите первый день месяца, используя EOMONTH
Функция EOMONTH дает вам последний день месяца для заданной даты (отсюда и называется функция конца месяца).
Но нам не нужен последний день месяца — нам нужен первый день.
Чтобы получить первое число месяца, вам нужно немного изменить формулу EOMONTH.
Предположим, у вас есть набор данных, показанный ниже, где вы хотите найти первый день месяца для каждой из этих дат в столбце A.
Обратите внимание, что эти даты указаны в формате ММ / ДД / ГГГГ (формат даты, используемый в США). В вашей системе они могут выглядеть по-разному в зависимости от региональных настроек даты.
Ниже приведена формула для этого:
= EOMONTH (A2; -1) +1
В приведенной выше формуле EOMONTH используются два аргумента:
- Дата начала: дата, с которой Excel использует значение месяца и вычисляет первый день месяца.
- Месяцы: Количество месяцев до или после даты начала. Если я использую 0, EOMONTH даст мне последний день данного месяца, а если я использую 1, он даст мне последний день следующего месяца.
Поскольку я использовал -1 в качестве второго аргумента в формуле EOMONTH, он дает мне последний день предыдущего месяца (на основе даты в ячейке A2).
А поскольку мне нужен первый день месяца (с заданной даты), я могу просто добавить 1 к результату EOMONTH.
Вы также можете использовать ту же логику, если хотите 10-й день или любой другой день месяца. Просто добавьте это значение вместо 1 в формулу.
Обратите внимание, что функция EOMONTH доступна только в Excel 2007 и более поздних версиях.
Получите первый день месяца по формуле ДАТА / ДЕНЬ
Даты хранятся в Excel в виде чисел, что позволяет нам легко использовать их в вычислениях (например, сложении / вычитании).
Теперь, если вы хотите получить первый день месяца с заданной даты, вам просто нужно использовать значение дня в дате и вернуть его к 1.
Например, если у меня есть дата 15 октября 2021-2022 гг., Чтобы получить первый выходной в этом месяце, мне нужно вычесть 14 дней из этой даты.
Теперь давайте посмотрим, как преобразовать эту логику в формулу Excel.
Предположим, у меня есть набор данных, показанный ниже, где у меня есть даты в столбце A, и я хочу получить первый день месяца для каждой из этих дат.
Ниже приведена формула, которая сделает это:
= A2-ДЕНЬ (A2) +1
В приведенной выше формуле используется дата в ячейке A2 (которая хранится как серийный номер сзади и в Excel) и вычитается значение дня той же даты (которое задается формулой DAY).
Вышеупомянутая формула дает нам последний день предыдущего месяца, поэтому добавляется 1, потому что мы хотим, чтобы первый день месяца начинался с заданной даты.
Получите первый понедельник месяца
Получить первый день месяца довольно просто, но, скорее всего, сложно получить первый понедельник месяца (или любой другой первый день недели).
Хотя мы знаем, что это будет где-то в начале месяца, чтобы получить точную дату, нам нужно узнать, какой сегодня день первого дня месяца, а затем использовать его для получения первого понедельника.
Целью этого руководства я буду считать понедельник первым днем недели (чтобы вы могли использовать метод, показанный здесь, чтобы узнать первое появление любого дня недели)
Позвольте мне взять пример сентября 2021-2022, где первый день месяца — вторник, а первый понедельник — 8 сентября 2021-2022.
Ниже приведена формула, которая даст мне первый понедельник сентября2021-2022 гг.
= (EOMONTH (DATE (2020,7,1), - 1) +1) + (MOD (8-WEEKDAY (EOMONTH (DATE (2020,7,1), - 1) +1,2), 7))
Обратите внимание, что я жестко запрограммировал дату с помощью функции DATE. В этом случае вы также можете использовать ссылку на ячейку с датой. Поэтому вместо DATE (2020,7,1) вы можете использовать ссылку на ячейку (например, A2) с датой.
Теперь позвольте мне объяснить, как работает эта формула!
Первая часть формулы (которая является формулой EOMONTH) дает нам первый день месяца для данной даты.
Вторая часть формулы использует функцию WEEKDAY для анализа этого первого дня месяца. Если уже понедельник, то вся формула MOD возвращает 0, и у нас останется сам первый день.
Но если первый день месяца не является понедельником, то формула MOD даст нам общее количество дней, которое мы должны добавить к этой дате, чтобы получить первый понедельник месяца.
Например, для сентября 2021–2022 гг. Первый день месяца — вторник. В этом случае функция MOD дает нам 6, что при добавлении к результату EOMONTH дает нам 7 сентября 2021-2022 гг. Как первый понедельник месяца.
В этом примере я показал вам, как найти первый понедельник любого месяца, но вы можете использовать ту же формулу, чтобы найти любой день.
Например, если вы хотите найти первую субботу любого месяца, вы можете настроить формулу, как показано ниже:
= (EOMONTH (DATE (2020,9,1); - 1) +1) + (MOD (8-WEEKDAY (EOMONTH (DATE (2020,9,1); - 1) +1,16), 7))
Единственное изменение, которое я сделал, — это второй аргумент формулы WEEKDAY.
Вот как вы можете использовать формулы в Excel, чтобы узнать первый день месяца или первый понедельник (или любой другой день недели) месяца.
Надеюсь, вы нашли этот урок полезным!