Иногда вам может потребоваться знать, какой первый день месяца в зависимости от заданной даты. Когда нет специальной функции для получения первого дня данного месяца, вы можете легко найти обходной путь.

В этом руководстве по 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 октября 2020 года, чтобы получить первый выходной в этом месяце, мне нужно вычесть 14 дней из этой даты.

Теперь давайте посмотрим, как преобразовать эту логику в формулу Excel.

Предположим, у меня есть набор данных, показанный ниже, где у меня есть даты в столбце A, и я хочу получить первый день месяца для каждой из этих дат.

Ниже приведена формула, которая сделает это:

= A2-DAY (A2) +1

В приведенной выше формуле используется дата в ячейке A2 (которая хранится как серийный номер на оборотной стороне и в Excel) и вычитается значение дня той же даты (которое задается формулой DAY).

Вышеупомянутая формула дает нам последний день предыдущего месяца, поэтому добавляется 1, потому что нам нужен первый день месяца с заданной даты.

Получите первый понедельник месяца

Достаточно просто получить первый день месяца, скорее всего, сложно получить первый понедельник месяца (или любой другой первый день недели месяца).

Хотя мы знаем, что это будет где-то в начале месяца, чтобы получить точную дату, нам нужно узнать, какой сегодня день первого дня месяца, а затем использовать его, чтобы получить первый понедельник.

Целью этого руководства я буду считать понедельник первым днем ​​недели (чтобы вы могли использовать метод, показанный здесь, чтобы узнать первое появление любого дня недели)

Позвольте мне привести пример сентября 2020 года, когда первый день месяца — вторник, а первый понедельник — 8 сентября 2020 года.

Ниже приведена формула, которая даст мне первый понедельник сентября 2020 года.

= (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 даст нам общее количество дней, которое мы должны добавить к этой дате, чтобы получить первый понедельник месяца.

Например, в сентябре 2020 года первый день месяца — вторник. В этом случае функция MOD дает нам 6, что при добавлении к результату EOMONTH дает нам 7 сентября 2020 года как первый понедельник месяца.

В этом примере я показал вам, как найти первый понедельник любого месяца, но вы можете использовать ту же формулу, чтобы найти любой день.

Например, если вы хотите найти первую субботу любого месяца, вы можете настроить формулу, как показано ниже:

= (EOMONTH (DATE (2020,9,1); - 1) +1) + (MOD (8-WEEKDAY (EOMONTH (DATE (2020,9,1); - 1) +1,16), 7))

Единственное изменение, которое я сделал, — это второй аргумент формулы WEEKDAY.

Вот как вы можете использовать формулы в Excel, чтобы узнать первый день месяца или первый понедельник (или любой другой день недели) месяца.

Надеюсь, вы нашли этот урок полезным!

Как получить первый день месяца в Excel (простые формулы)