Иногда вам может потребоваться узнать, какой первый день месяца, исходя из заданной даты. Поскольку в Excel нет специальной функции для получения первого дня определённого месяца, можно легко найти обходной путь.
В этом руководстве я покажу простую формулу, которую можно использовать, чтобы получить первый день месяца в Excel на основе заданной даты.
Способ 1: Получить первый день месяца через КОНМЕСЯЦА
Функция КОНМЕСЯЦА (EOMONTH) даёт последний день месяца для заданной даты (отсюда и название — «конец месяца»). Но нам нужен не последний, а первый день — поэтому формулу нужно немного изменить.
Формула:
=КОНМЕСЯЦА(A2;-1)+1
Функция КОНМЕСЯЦА принимает два аргумента:
- Дата начала — дата, на основе значения месяца которой Excel вычисляет последний день
- Месяцы — количество месяцев до или после даты начала. Если использовать 0, функция вернёт последний день текущего месяца, а если 1 — последний день следующего месяца
Поскольку в формуле используется -1 в качестве второго аргумента, функция возвращает последний день предыдущего месяца (относительно даты в A2). А поскольку нам нужен первый день текущего месяца — к результату просто прибавляется 1.
Способ 2: Формула ДАТА / ДЕНЬ
Даты в Excel хранятся как числа, что позволяет легко использовать их в вычислениях (сложение/вычитание). Чтобы получить первый день месяца от заданной даты, нужно просто вычесть значение дня и вернуться к 1.
Например, если дата — 15 октября, чтобы получить первый день этого месяца, нужно вычесть 14 дней.
Формула:
=A2-ДЕНЬ(A2)+1
Формула использует дату в ячейке A2 (которая хранится как серийный номер) и вычитает значение дня этой же даты (полученное функцией ДЕНЬ). Результатом этого вычитания будет последний день предыдущего месяца, поэтому прибавляется 1, чтобы получить именно первый день текущего месяца.
Получить первый понедельник месяца
Получить первый день месяца довольно просто, но получить, например, первый понедельник месяца (или любой другой конкретный день недели) — сложнее. Хотя мы знаем, что это будет где-то в начале месяца, для точной даты нужно узнать, каким днём недели является первое число, а затем на основе этого вычислить нужный день.
Для примера возьмём сентябрь, где первый день месяца — вторник, а первый понедельник — 8 сентября. Формула, которая вычислит первый понедельник сентября:
=(КОНМЕСЯЦА(ДАТА(2020;7;1);-1)+1)+(ОСТАТ(8-ДЕНЬНЕД(КОНМЕСЯЦА(ДАТА(2020;7;1);-1)+1;2);7))
Как это работает: первая часть формулы (КОНМЕСЯЦА) даёт первый день месяца для заданной даты. Вторая часть использует функцию ДЕНЬНЕД, чтобы определить, каким днём недели является этот первый день. Если это уже понедельник — вся формула ОСТАТ возвращает 0, и остаётся сам первый день месяца.
Но если первый день месяца не понедельник, формула ОСТАТ вычисляет, сколько дней нужно прибавить к этой дате, чтобы получить первый понедельник. Например, для сентября, где первый день — вторник, функция ОСТАТ даёт 6, что при добавлении к результату КОНМЕСЯЦА даёт 7 сентября — первый понедельник месяца.
Ту же формулу можно адаптировать для поиска любого дня недели. Например, для поиска первой субботы месяца нужно изменить только второй аргумент функции ДЕНЬНЕД:
=(КОНМЕСЯЦА(ДАТА(2020;9;1);-1)+1)+(ОСТАТ(8-ДЕНЬНЕД(КОНМЕСЯЦА(ДАТА(2020;9;1);-1)+1;16);7))
Вот как можно использовать формулы Excel, чтобы найти первый день месяца или первый понедельник (или любой другой день недели) месяца.
Работайте с датами без головной боли
КОНМЕСЯЦА, ДЕНЬНЕД и другие формулы дат на практике
