Функция EOMONTH в Excel: получить последний день месяца быстро и без ошибок
Быстрые ссылки
- Синтаксис EOMONTH
- Расчёт даты конца месяца в будущем
- Расчёт даты конца месяца в прошлом
- Долгосрочные расчёты по годам
- Конец текущего месяца
- Генерация последовательностей дат конца месяца

Функция EOMONTH в Microsoft Excel возвращает последний день месяца для даты в прошлом, текущего месяца или в будущем. Её применяют для расчёта сроков оплаты, дедлайнов, дат истечения, месячных доходов и прогнозов. По умолчанию EOMONTH возвращает числовой код даты. Прежде чем отображать результат, примените формат даты к ячейке.
Синтаксис EOMONTH
=EOMONTH(a,b)- a — начальная дата (любой день любого месяца любого года). Можно передать ссылку на ячейку, DATE(), TODAY() или результат другой функции.
- b — количество месяцев, на которое нужно сдвинуться: положительное значение двигает вперёд, отрицательное — назад, ноль остаётся в том же месяце. После смещения Excel возвращает последний день месяца, на который пришёл.
Примеры передачи аргумента a:
| Аргумент a | Описание |
|---|---|
| =EOMONTH(A1, | Начальная дата берётся из ячейки A1. |
| =EOMONTH(DATE(2025,05,31), | Начальная дата — 31 мая 2025 года. |
| =EOMONTH(TODAY(), | Начальная дата — сегодняшняя дата. |
Примеры передачи аргумента b:
| Аргумент b | Описание |
|---|---|
| =EOMONTH(A1, 5) | Последний день месяца через пять месяцев после даты в A1. |
| =EOMONTH(A1, -5) | Последний день месяца за пять месяцев до даты в A1. |
| =EOMONTH(A1, 0) | Последний день месяца той же даты, что в A1. |
| =EOMONTH(A1, A2) | Берёт число месяцев из A2 и сдвигает дату в A1 вперёд на это число месяцев. |
| =EOMONTH(A1, -A2) | Берёт число месяцев из A2 и сдвигает дату в A1 назад на это число месяцев. |
Расчёт даты конца месяца в будущем
Наиболее частая задача — получить последний день месяца в будущем. Представьте, что вы менеджер проектов. У вас есть таблица с десятью проектами. Каждый проект занимает N месяцев, дедлайн — в конце месяца.

Чтобы заполнить колонку «End date» (колонка E), используйте EOMONTH. В ячейке E2 введите:
=EOMONTH([@[Start date]],[@Months])Пояснения:
- [@[Start date]] — структурированная ссылка на дату начала в той же строке;
- [@Months] — количество месяцев, на которое продвигается проект.
Если данные — Excel-таблица, Excel подставит структурированные ссылки и автозаполнит столбец после ввода формулы в первую строку. В обычном диапазоне используйте ручное протягивание (fill handle).

Пример: старт 4 января 2025, +3 месяца → 4 апреля 2025 → последний день месяца = 30 апреля 2025.
Преимущества ссылок вместо «жёстких» дат:
- Формула адаптируется к каждой строке автоматически.
- Для изменения сроков достаточно обновить данные, формулу трогать не нужно.
Расчёт даты конца месяца в прошлом
EOMONTH удобна для обратных расчётов. Например, нужно узнать самую позднюю дату начала проекта, чтобы уложиться в дедлайн.

Если проект идёт N месяцев, и вы хотите оставить дополнительный месяц «буфера», используйте формулу:
=EOMONTH([@Deadline],-[@Months]-1)Пояснение: сдвигаем дедлайн назад на N месяцев и ещё на один месяц, затем берём последний день получившегося месяца.

Пример: дедлайн 27 января 2026, длительность 5 месяцев → сдвиг на 5 месяцев назад = август 2025 → сдвиг на ещё один месяц назад = июль 2025 → результат 31 июля 2025.
Долгосрочные расчёты (по годам)
EOMONTH работает только с месяцами. Чтобы сдвинуть дату на заданное количество лет, умножьте число лет на 12.
=EOMONTH([@[Start date]],[@Years]*12)Для сдвига назад поставьте минус:
=EOMONTH([@[Start date]],-[@Years]*12)
Пример: старт 4 января 2025, +2 года → +24 месяца → 4 января 2027 → конец месяца = 31 января 2027.
Конец текущего месяца
EOMONTH удобно использовать с TODAY() для расчёта конца текущего месяца и оставшихся дней.
=EOMONTH(TODAY(),0)-TODAY()- EOMONTH(TODAY(),0) — последний день текущего месяца;
- TODAY() — текущая дата;
- вычитание даёт количество дней до конца месяца.
Если Excel отформатирует результат как дату, смените формат ячейки на «Общий» (General).

Чтобы вычислить допустимый расход в день:
=B6/B1Где B6 — остаток бюджета, B1 — количество дней до конца месяца.
Генерация последовательностей дат конца месяца
Сочетание EOMONTH с SEQUENCE позволяет быстро создать список дат конца месяца.
SEQUENCE имеет форму:
=SEQUENCE(a,b,c,d)- a — число строк;
- b — число колонок;
- c — стартовое значение последовательности;
- d — шаг между значениями.
Пример — список дат конца каждого месяца 2025:
=EOMONTH(DATE(2024,12,31),SEQUENCE(12))
Пример для каждого второго месяца:
=EOMONTH(DATE(2024,12,31),SEQUENCE(6,,,2))И пример для квартальных дат:
=EOMONTH(DATE(2025,2,28),SEQUENCE(4,,,3))Динамический массив «выпадает» (spills) из ячейки, поэтому формула должна быть в обычном диапазоне, а не в таблице Excel. Чтобы закрепить полученные значения, скопируйте диапазон и вставьте как значения (Ctrl+C → Ctrl+Shift+V или «Вставить значения»).

Когда EOMONTH не подойдёт или даст неожиданный результат
Важно понимать ограничения и подводные камни:
- EOMONTH всегда возвращает последний день итогового месяца. Если вам нужен тот же номер дня (например, 15е число через 3 месяца), используйте EDATE.
- EOMONTH работает с кодами дат. Неверный формат ячейки может показать дату как число.
- Если начальная дата — пустая ячейка или текст, функция вернёт ошибку.
- При сложных логиках рабочих дней и праздников (например, нужно найти последний рабочий день) EOMONTH не учитывает выходные и праздники; используйте WORKDAY, WORKDAY.INTL или составные формулы.
- SEQUENCE возвращает динамический массив, который не совместим с таблицами Excel. Если ваш результат должен быть таблицей, вставьте значения после генерации.
Частые альтернативы и их применение
- EDATE(start,n) — возвращает ту же позицию дня в месяце, смещённую на n месяцев (не даёт обязательно конец месяца).
- DATE(year,month,day) + конструкции — ручной контроль при создании дат.
- WORKDAY и WORKDAY.INTL — для поиска ближайшего рабочего дня с учётом праздников.
- NETWORKDAYS — считать рабочие дни между датами.
Выбор зависит от задачи: нужен последний день месяца — EOMONTH, та же дата в новом месяце — EDATE, последний рабочий день — комбинировать EOMONTH с WORKDAY.
Практическое руководство: мини-SOP для типовых задач
Шаги для расчёта дат окончания проекта и интеграции в отчёт:
- Подготовьте таблицу с колонками: Project, Duration (мес), Start date, End date.
- Убедитесь, что колонка Start date имеет формат Дата.
- В колонке End date введите формулу:
- =EOMONTH([@[Start date]],[@Months])
- Протяните формулу по столбцу (или оставьте автозаполнение таблицы).
- При необходимости преобразуйте формулу в значения: скопируйте → Вставить значения.
- Для отчётов используйте формат ячеек “Дата”, удобный для локали (дд.мм.гггг или другой).
Критерии приёмки (проверки):
- Для тестового проекта с датой начала 15.01.2025 и длительностью 2 месяца результат = 31.03.2025.
- При вводе TODAY() и формуле EOMONTH(TODAY(),0) результат совпадает с последним днём текущего месяца.
Шаблон часто используемых формул (cheat sheet)
- Последний день текущего месяца:
=EOMONTH(TODAY(),0)- Последний день через N месяцев:
=EOMONTH(A1,N)- Последний день через N лет:
=EOMONTH(A1,N*12)- Дата начала проекта с буфером в 1 месяц до дедлайна:
=EOMONTH(Deadline,-Months-1)- Массив дат конца месяцев на следующий год (2025):
=EOMONTH(DATE(2024,12,31),SEQUENCE(12))- Квартальные даты конца месяца, начиная с конца февраля 2025:
=EOMONTH(DATE(2025,2,28),SEQUENCE(4,,,3))Контрольные сценарии и тесты приёмки
- Ввод даты 31.01.2024 и формула =EOMONTH(A1,1) → ожидаемо 29.02.2024 (високосный год).
- Ввод даты 31.01.2023 и формула =EOMONTH(A1,1) → ожидаемо 28.02.2023.
- Пустая ячейка в аргументе a → функция вернёт ошибку; проверка на ISBLANK рекомендуется.
- Совмещение с форматами: если результат отображается как число, смените формат на Дата.
Ментальные модели и эвристики
- «EOMONTH = всегда конец месяца» — это простая ассоциация, которая помогает быстро выбрать функцию.
- Если нужна «та же числовая позиция» в новом месяце — вспомните про EDATE.
- Чтобы перевести годы в месяцы — умножьте на 12.
Совместимость и примечания по версиям
EOMONTH поддерживается в большинстве современных версий Excel, включая Excel для Microsoft 365, Excel 2019 и более ранние выпуски. В очень старых версиях Excel некоторые функции могли требовать надстройку Analysis ToolPak; в текущих релизах это не требуется. SEQUENCE и динамические массивы доступны в современных версиях с поддержкой динамических массивов (Microsoft 365 и новее). Если SEQUENCE недоступна, используйте ручную генерацию или VBA.
Безопасность и приватность
Функции EOMONTH, EDATE, SEQUENCE не передают данные внешним сервисам. Обрабатывайте личные и финансовые данные в соответствии с корпоративной политикой и локальными требованиями к защите данных.
Роль‑ориентированные чек‑листы
Для менеджера проектов:
- Проверьте стартовые даты и длительности.
- Убедитесь, что формула End date возвращает последний день и учтите буфер.
- Экспортируйте итоговые даты как значения для передачи подрядчикам.
Для бухгалтера/аналитика:
- Используйте EOMONTH для выравнивания поступлений/отчислений по месяцам.
- Сверяйте отчёты с фактическими датами проводок.
Для разработчика отчётов:
- Если нужен последний рабочий день, комбинируйте EOMONTH с WORKDAY.INTL.
- При использовании динамических массивов контролируйте совместимость с таблицами.
Глоссарий (одна строка на термин)
- EOMONTH — функция Excel, возвращающая последний день месяца после смещения на заданное число месяцев.
- EDATE — функция Excel, сдвигающая дату на заданное число месяцев, сохраняя позицию дня.
- SEQUENCE — функция для генерации массивов последовательных чисел.
- TODAY — функция, возвращающая текущую дату.
- WORKDAY / WORKDAY.INTL — функции поиска рабочего дня с учётом праздников.
Частые ошибки и как их исправить
- Результат отображается как число: поменяйте формат ячейки на “Дата”.
- Неправильный итог при сложении месяцев: проверьте знак и умножение лет на 12.
- Ошибки при использовании SEQUENCE в таблице: вставьте формулу в обычную область или конвертируйте результат в значения.
- Не учтён рабочий день: добавьте WORKDAY вокруг EOMONTH, например =WORKDAY(EOMONTH(A1,0),-1,holidays).
Заключение
EOMONTH — простая и мощная функция для всех задач, где важен последний день месяца. Она ускоряет расчёты сроков проектов, бюджетирование и планирование. Помните: если нужна та же позиция дня в новом месяце — используйте EDATE. Комбинируйте EOMONTH с TODAY, SEQUENCE и другими функциями для получения гибких и масштабируемых решений.
Важно: тестируйте формулы на граничных датах (конец февраля, високосные годы) и закрепляйте итоговые значения перед экспортом в отчёты.
Краткая сводка:
- EOMONTH возвращает последний день месяца после смещения на n месяцев.
- Для сохранения позиции дня используйте EDATE.
- SEQUENCE + EOMONTH позволяет быстро генерировать ряды дат конца месяца.
Похожие материалы
Троян Herodotus: как он работает и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей PivotTable в Excel — руководство
Включить новый Пуск в Windows 11 — инструкция
Как убрать дубликаты Диспетчера задач Windows 11