Гид по технологиям

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

6 min read Таблицы Обновлено 21 Oct 2025
EOMONTH в Google Sheets — конец месяца
EOMONTH в Google Sheets — конец месяца

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

Логотип Google Sheets на фоне календаря

«Конец месяца» — именно то, что находит функция 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.

Простой пример использования EOMONTH.jpg?q=50&fit=crop&w=825&dpr=1.5)

Шаги:

  1. Выделите пустую ячейку, в которой хотите получить результат (например, C2).
  2. Введите формулу, начиная с =EOMONTH(.
  3. Укажите ссылку на ячейку с начальной датой, например A2, затем запятую.
  4. Укажите число месяцев для смещения, например B2, затем закройте скобку.
  5. Нажмите Enter — в ячейке появится последний день месяца.

Пример формулы:

=EOMONTH(A2, B2)

Поведение аргумента months:

  • B2 = 0 → последний день месяца из A2;
  • B2 = 1 → последний день следующего месяца;
  • B2 = -1 → последний день предыдущего месяца.

Практические примеры и шаблоны

  1. Фиксация срока оплаты «конец текущего месяца» при выставлении счёта:
=EOMONTH(TODAY(), 0)
  1. Срок оплаты через 30 дней с округлением до конца месяца (используем EOMONTH вместе с датой через 30 дней):
=EOMONTH(TODAY()+30, 0)
  1. Выдать дату истечения подписки через 12 месяцев, до конца соответствующего месяца:
=EOMONTH(A2, 12)
  1. Комбинация с 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.
  • Работает с формулами и ссылками на ячейки, не только с литеральными датами.
  • Подходит для финансовых расчётов, планирования подписок, расчёта сроков оплаты.

Рекомендации для внедрения в рабочие процессы (мини-методология)

  1. Стандартизируйте формат входных дат в таблицах (рекомендуется ISO-формат или локальный стиль компании).
  2. Используйте ссылки на ячейки, а не текстовые даты внутри формул.
  3. Тестируйте на крайних датах: 28/02, 29/02, 31/01, 30/04.
  4. При совместном использовании с другими функциями документируйте ожидания (например, «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.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

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

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

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

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

Мониторинг CPU и памяти в Docker Desktop
Docker

Мониторинг CPU и памяти в Docker Desktop

Спуфинг GPS для Pokémon Go на iPhone (iOS 17)
Игры

Спуфинг GPS для Pokémon Go на iPhone (iOS 17)

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

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

Как уменьшить размер PDF без потери качества
PDF

Как уменьшить размер PDF без потери качества