EOMONTH в Google Sheets — найти конец месяца и использовать для счетов

EOMONTH помогает автоматически находить последний день месяца, отступая на заданное число месяцев от исходной даты. Полезно для расчёта дат оплаты, срока действия подписки и отчётных периодов — работает с високосными годами и поддерживает ссылки на ячейки и отрицательные значения для прошлых дат.
«Конец месяца» — именно то, что находит функция EOMONTH в Google Sheets. Умение использовать эту функцию важно для многих бизнесов, так как конец месяца — обычный момент для оплаты счетов и выставления исходящих счетов.
В этом руководстве на примерах мы рассмотрим, как пользоваться функцией EOMONTH в Google Sheets. К концу вы должны понять базовую логику и практические приёмы для применения EOMONTH.
Что такое функция EOMONTH и когда её применять?
EOMONTH — встроенная функция Google Sheets из категории функций даты. Она возвращает дату последнего дня месяца, который находится на n месяцев от начальной даты: нулевое значение возвращает последний день месяца самой начальной даты, положительное значение даёт дату в будущем, отрицательное — в прошлом.
Когда использовать:
- расчёт дат платежей или дат выставления счетов;
- определение срока действия (последний день месяца истечения);
- агрегация по месяцу при построении отчётов;
- округление дат до конца месяца для сравнения периодов.
Короткое определение: EOMONTH(start_date, months) — возвращает последний календарный день месяца, смещённого на months месяцев относительно start_date.
Важные замечания
- Любой день месяца может использоваться как start_date. При одинаковом смещении месяцев результат будет одинаков для разных дат внутри одного месяца.
- Дробные значения аргумента months усекаются до целого (5.7 станет 5).
- Функция учитывает високосные года и разную длину месяцев.
Синтаксис функции EOMONTH
=EOMONTH(start_date, months)
Разберём по частям:
- знак равенства = указывает Google Sheets, что в ячейке формула;
- EOMONTH — имя функции;
- start_date — обязательный аргумент: начальная дата; можно передать дату напрямую или ссылку на ячейку;
- months — количество месяцев для смещения: положительное число смещает вперёд, отрицательное — назад.
Пример пошагово: как использовать EOMONTH в таблице
Ниже показан простой пример, где в колонке A — начальные даты, в колонке B — количество месяцев смещения, а в колонке C будет итог, последний день искомого месяца. Формат дат в примере — dd/mm/yyyy.
.jpg?q=50&fit=crop&w=825&dpr=1.5)
Шаги:
- Выделите пустую ячейку, в которой хотите получить результат (например, C2).
- Введите формулу, начиная с =EOMONTH(.
- Укажите ссылку на ячейку с начальной датой, например A2, затем запятую.
- Укажите число месяцев для смещения, например B2, затем закройте скобку.
- Нажмите Enter — в ячейке появится последний день месяца.
Пример формулы:
=EOMONTH(A2, B2)
Поведение аргумента months:
- B2 = 0 → последний день месяца из A2;
- B2 = 1 → последний день следующего месяца;
- B2 = -1 → последний день предыдущего месяца.
Практические примеры и шаблоны
- Фиксация срока оплаты «конец текущего месяца» при выставлении счёта:
=EOMONTH(TODAY(), 0)
- Срок оплаты через 30 дней с округлением до конца месяца (используем EOMONTH вместе с датой через 30 дней):
=EOMONTH(TODAY()+30, 0)
- Выдать дату истечения подписки через 12 месяцев, до конца соответствующего месяца:
=EOMONTH(A2, 12)
- Комбинация с WORKDAY для расчёта рабочего дня, ближайшего к концу месяца:
=WORKDAY(EOMONTH(A2,0), -1)
Альтернативные подходы и когда EOMONTH не подходит
- Если нужно получить последний календарный день без смещения, можно использовать комбинацию DATE и MONTH, однако EOMONTH короче и надёжнее.
- Для задач, где требуется именно «последний рабочий день» месяца, EOMONTH сам по себе не решит задачу — понадобится WORKDAY или собственный список нерабочих дней.
- Если исходные даты заданы в виде текста нестандартного формата, сначала нужно привести их к типу ДАТА с помощью DATEVALUE; иначе EOMONTH вернёт ошибку.
Контрпример: если start_date = “31/02/2022” как текст-ошибка, DATEVALUE вернёт ошибку и EOMONTH работать не будет.
Ментальные модели и эвристики
- Мысленно представляйте EOMONTH как «переместить указатель месяца на N, затем перейти к его последнему дню».
- Для округления дат к месяцам думайте «EOMONTH вместо ручной арифметики с днями».
- Для отрицательных значений visualise движение влево по календарю: -1 → предыдущий месяц, -12 → год назад.
Факто-бокс: что важно знать
- Обрабатывает високосные годы корректно.
- Усечение дробных months: 3.9 → 3.
- Работает с формулами и ссылками на ячейки, не только с литеральными датами.
- Подходит для финансовых расчётов, планирования подписок, расчёта сроков оплаты.
Рекомендации для внедрения в рабочие процессы (мини-методология)
- Стандартизируйте формат входных дат в таблицах (рекомендуется ISO-формат или локальный стиль компании).
- Используйте ссылки на ячейки, а не текстовые даты внутри формул.
- Тестируйте на крайних датах: 28/02, 29/02, 31/01, 30/04.
- При совместном использовании с другими функциями документируйте ожидания (например, «months — целое»).
Контроль качества и критерии приёмки
Критерии приёмки для формул, использующих EOMONTH:
- Формула возвращает корректный последний день для даты в высокосный и невисокосный год.
- Для months = 0 результат равен последнему дню месяца исходной даты.
- Для отрицательных и положительных months поведение симметрично по месечному смещению.
- Формула корректно обрабатывает ссылки на пустые ячейки, выдавая ожидаемую ошибку или дефолт.
Тест-кейсы:
- A2 = 15/02/2020, B2 = 0 → 29/02/2020
- A2 = 01/03/2021, B2 = -1 → 28/02/2021
- A2 = текстовая дата “2021-04-15” как текст → предварительно конвертировать DATEVALUE
Чек-листы ролей
Для бухгалтера:
- Убедиться, что колонка дат имеет правильный формат;
- Проверить формулы на месяц/год вокруг перехода года;
- Документировать логику расчётов в комментариях к ячейкам.
Для разработчика отчётности:
- Использовать EOMONTH в ETL-скриптах или при подготовке данных;
- Добавить автоматические тесты для граничных дат;
- Обработать ошибочные входные данные через валидацию.
Советы по локали и форматированию
- В таблицах с несколькими локалями удобно хранить даты в ISO (yyyy-mm-dd) внутри данных и только при выводе применять локальный формат отображения.
- При вводе дат вручную проверяйте региональные настройки Google Sheets — они влияют на распознавание форматов.
Частые ошибки и способы исправления
- Ошибка #VALUE! обычно означает, что start_date не распознан как дата. Решение: использовать DATEVALUE или привести источник к корректному формату.
- Ожидание округления months до ближайшего целого — фактически происходит усечение. Если нужно округление, примените ROUND.
- Не путать EOMONTH с EDATE: EDATE возвращает дату с тем же днём месяца, а EOMONTH — всегда последний день месяца.
Короткий список формул-спутников (шпаргалка)
- EOMONTH(start_date, months) — последний день месяца с смещением
- EDATE(start_date, months) — дата, смещённая на months, сохраняет день месяца
- WORKDAY(date, days) — ближайший рабочий день с учётом выходных
Заключение
EOMONTH — простая и надёжная функция для поиска последнего дня месяца с возможностью смещения на нужное количество месяцев. Она ускоряет расчёты для бухгалтерии, подписок и отчётности. После освоения базовой логики стоит практиковать комбинации EOMONTH с другими функциями для решения рабочих задач.
Важное: перед массовым применением формул прогоните тест-кейсы на крайних датах и согласуйте формат входных дат в общем рабочем пространстве.
Краткое резюме ниже.
Резюме
- EOMONTH возвращает последний день месяца, смещённого на months месяцев от start_date.
- months усекается до целого; функция учитывает високосные года.
- Для рабочих дней используйте в связке с WORKDAY.
Похожие материалы

Безопасное программирование на Bash

Как безопасно обновиться до iOS 18 Beta

Мониторинг CPU и памяти в Docker Desktop
Спуфинг GPS для Pokémon Go на iPhone (iOS 17)

Ускорение Windows: визуальные эффекты и OneDrive
