Функция EDATE в Google Таблицах — добавление и вычитание месяцев из даты

Что такое функция EDATE в Google Таблицах
EDATE — это функция даты в Google Таблицах, которая прибавляет или вычитает указанное число месяцев к исходной дате и возвращает итоговую дату. Она особенно полезна в связке с другими дата-функциями для автоматизации расчётов сроков и итерационных планов.
Синтаксис функции простой:
=EDATE(starting_date, months)- starting_date — дата (или число, представляющее дату) или ссылка на ячейку с датой.
- months — целое число месяцев: положительное для прибавления, отрицательное для вычитания.
Примеры одного-строчного определения терминов:
- Дата (date): календарная точка во времени, воспринимаемая Таблицами как значение.
- Date value: числовое представление даты в Google Таблицах (см. факто-бокс ниже).
Важно: EDATE возвращает значение в формате даты, которое можно напрямую использовать в других функциях и форматировать как дату в интерфейсе.
Как работает EDATE — простая инструкция
- Введите исходную дату в ячейку A2, например 2022-01-29.
- Введите число месяцев для добавления или вычитания в ячейку B2, например 4.
- Выберите ячейку C2 для результата.
- В строке формул введите:
=EDATE(A2, B2)- Нажмите Enter — в C2 появится итоговая дата (2022-05-29 для примера).
EDATE автоматически учитывает разную длину месяцев: если исходный день не существует в целевом месяце (например, 31 января + 1 месяц), результат будет последним днём целевого месяца (28/29 февраля).
Примеры использования
- Добавить 6 месяцев к дате в A1:
=EDATE(A1, 6)- Вычесть 3 месяца:
=EDATE(A1, -3)- Вставить конкретную дату в формулу:
=EDATE(DATE(2023, 3, 15), 12) // вернёт 2024-03-15- Комбинировать с TODAY() для срока напоминания через N месяцев:
=EDATE(TODAY(), 1) // через месяц от текущей датыКогда EDATE даёт неожиданный результат (когда функция не сработает)
- EDATE не работает с датами до 30 декабря 1899 года (включительно) потому что Google Таблицы интерпретируют 30.12.1899 как нулевую точку отсчёта — отрицательные date value меньше 0 могут приводить к ошибкам.
- Если в качестве starting_date передать текст, нераспознанный как дата, функция вернёт ошибку.
- При использовании вещественных чисел вместо целых месяцев поведение не поддерживается — months должен быть целым.
Альтернативы и комбинации
- EOMONTH — смещает до конца месяца: полезно, если нужно получить последний день через N месяцев.
- DATE + YEAR/MONTH/DAY — даёт полный контроль над компонентами даты, полезно для сложных правил (например, «переходить на первое число следующего месяца»).
- Добавлять дни (DATE + N) — когда нужно смещать на точное число дней, а не месяцев.
Ментальная модель: EDATE воспринимайте как «прокрутку календаря на N месяцев», где день сохраняется, но если месяц короче — выбирается последний возможный день.
Факто-бокс — ключевые числа и поведение
- Нулевая точка (date value 0): 30 декабря 1899 года.
- Пример date value: 2022-01-29 → 44590 (внутреннее представление).
- Поддержка отрицательных months: да (для вычитания месяцев).
- Ограничение: корректная работа для дат с date value >= 0.
Рекомендации и проверка формул (критерии приёмки)
Критерии приёмки для формулы на базе EDATE:
- Формула возвращает дату в ожидаемом формате для десяти тестовых случаев (включая конец месяца, високосные годы, переход через год).
- При вводе некорректной даты отображается понятная ошибка или применяется проверка данных.
- Комбинации с TODAY() и автоматическое обновление работают как ожидается.
Тестовые кейсы (минимум):
- 2022-01-31 + 1 месяц → 2022-02-28 (или 29 в високосный год).
- 2020-02-29 + 12 месяцев → 2021-02-28.
- 1899-12-29 + 1 месяц → проверка на отрицательное значение (ошибка/предупреждение).
- TODAY() + 3 месяца → корректный результат от текущей даты.
Шаблоны и сниппеты (чек-лист по ролям)
Для бухгалтера:
- =EDATE(A2, 12) — годовая дата продления
- =EDATE(TODAY(), 1) — напоминание через месяц
Для менеджера продукта:
- =EDATE(ПериодНачала, Раз в N) — план релизов через N месяцев
Для разработчика/аналитика:
- Комбинировать с QUERY/ARRAYFORMULA для массовых расчётов дат в столбце.
Примеры расширенных сценариев
- Рассчитать дату окончания подписки, у которой платёж раз в N месяцев и требуется последний день месяца:
=EOMONTH(EDATE(StartDate, months-1), 0)- Сохранить «первый рабочий день через N месяцев» — добавить EDATE + проверку выходных (нужна дополнительная логика или скрипт).
План миграции и совместимость
- Формулы EDATE совместимы с Excel и другими табличными редакторами, но всегда проверяйте формат даты при импорте/экспорте.
- Если листы используются в разных локалях, убедитесь, что формат ввода дат однозначен (используйте DATE(год, месяц, день)).
Краткое резюме
EDATE — простая и мощная функция для сдвига дат по месяцам. Она надёжна для типичных задач планирования и финансовых расчётов, особенно когда комбинируется с EOMONTH, DATE и TODAY(). Обратите внимание на ограничения с датами до 30.12.1899 и всегда тестируйте крайние случаи (конец месяца, високосные годы).
Дополнительные ресурсы: используйте встроенную справку Google Таблиц по функциям DATE и EOMONTH для расширения сценариев.
Глоссарий в одну строку
- Date value: числовое внутреннее представление даты в Google Таблицах, отсчитываемое от 30.12.1899.
Похожие материалы
PhM Registry Editor для Windows Mobile
Генераторы списков в Python — полное руководство
Как сбросить Logitech G Pro Wireless
Отключить виджеты в Windows 11 — 3 способа
Отключить автозапуск видео в Facebook (Android/iOS)