Функция EDATE в Google Sheets: добавление и вычитание месяцев
EDATE — простая и надёжная функция Google Sheets для добавления или вычитания месяцев из даты. Используйте её вместе с DATE, DATEVALUE и EOMONTH для учёта конца месяца и высокоточности расчётов дат. Включены примеры, ошибки, тесты и чек-листы для разных ролей.
Что делает EDATE
EDATE добавляет или вычитает указанное число месяцев к стартовой дате и возвращает результат в формате даты, пригодном для дальнейших вычислений в Google Sheets.
Короткое определение: EDATE(starting_date, months) — прибавить months месяцев к starting_date.
=EDATE(starting_date, months)- starting_date — дата, текст, или числовое значение даты (date value).
- months — целое число; если положительное — добавляет месяцы, если отрицательное — вычитает.
Примеры форматов дат: 29.01.2022 (русский), 1/29/2022 (англ., часто встречается в примерах). Google Sheets при вводе даты автоматически конвертирует её в внутренний числовой формат (date value).
Important: нулевая точка для формата date value в Google Sheets — 30 декабря 1899 года. В этом формате 1 января 1900 — день 1. Это значит, что даты до 30.12.1899 имеют отрицательное значение и EDATE с ними работать не будет.
Как использовать EDATE — пошагово
- Введите стартовую дату в ячейку A2 (например, 29.01.2022).
- Введите количество месяцев в B2 (например, 4).
- В ячейку C2 введите формулу:
=EDATE(A2, B2)- Нажмите Enter — в C2 отобразится дата, смещённая на указанное число месяцев.
Если months = -3, функция вернёт дату, отстоящую на 3 месяца назад от стартовой.
Полезные сценарии и сочетания
- Продление подписок и сроков оплаты: стартовая дата + 12 месяцев.
- Отсчёт срока гарантии: дата продажи + гарантийный срок в месяцах.
- Формирование графика платежей: последовательные EDATE с шагом 1.
Комбинируйте EDATE с DATE, DATEVALUE, EOMONTH и TEXT для контроля формата и конца месяца.
Пример: если в A2 — текстовая дата “29 Jan 2022”, преобразуйте и прибавьте 6 месяцев:
=EDATE(DATEVALUE(A2), 6)Особые случаи и ограничения
- Неподдерживаемые даты: EDATE не работает с датами раньше 30.12.1899 (date value < 0).
- Неправильный ввод: если starting_date — невалидный текст, используйте DATEVALUE или DATE для конверсии.
- Конец месяца: при переносе с 31-го числа на месяц, где меньше дней, результат будет последним днём целевого месяца. Например, EDATE(31.01.2021, 1) вернёт 28.02.2021 (или 29.02 в високосный год).
Примеры ошибок:
- =EDATE(“не дата”, 3) → #VALUE!
- =EDATE(A2, 2.5) → аргумент months ожидает целое число; Sheets округляет дробь вниз или возвращает ошибку в зависимости от контекста — лучше передавать целое.
Сравнение с альтернативами
- EOMONTH(start, months) — возвращает последний день месяца смещённого периода. Используйте, когда нужен конец месяца, а не «та же числовая дата».
- DATE(YEAR(…), MONTH(…)+n, DAY(…)) — даёт полный контроль над компонентами, полезно, когда нужны нетипичные правила смещения.
- Добавление дней (start + 30*n) — ненадёжно из-за разной длины месяцев.
Пример: чтобы получить последний день через 3 месяца:
=EOMONTH(A2, 3)Если нужен расчёт «через N месяцев, но всегда последний день месяца целевого периода», используйте EOMONTH.
Практические примеры и шаблоны
Таблица примеров (в виде Markdown-таблицы для быстрого копирования в Sheets):
| A (старт) | B (месяцы) | Формула | Результат |
|---|---|---|---|
| 29.01.2022 | 4 | =EDATE(A2,B2) | 29.05.2022 |
| 31.01.2021 | 1 | =EDATE(A3,B3) | 28.02.2021 |
| “15 Feb 2020” | 12 | =EDATE(DATEVALUE(A4),B4) | 15.02.2021 |
Чек-лист для применения в шаблоне расчёта сроков:
- Убедиться, что стартовая дата в ячейке реально распознана как дата.
- Проверить, не отрицательный ли date value для исторических данных.
- Выбрать EDATE или EOMONTH в зависимости от требования к дате.
- Добавить обработку ошибок (IFERROR) для вывода понятного сообщения.
Пример формулы с обработкой ошибок:
=IFERROR(EDATE(A2, B2), "Неверная дата или диапазон")Критерии приёмки / тесты приемки
- Ввод: стартовая дата 15.03.2021, months = 6 → ожидаемый результат 15.09.2021.
- Ввод: 31.08.2021, months = 6 → ожидаемый результат 28.02.2022 (учёт короткого февраля).
- Неверная дата: “x” → формула должна возвращать контролируемую ошибку/сообщение при IFERROR.
- Эдж-кейс: дата до 30.12.1899 → должна быть обработана как недопустимая (предупреждение).
Советы и эвристики
- Правило месяца: не используйте «+30» для приближённого смещения месяцев — лучше EDATE.
- Для циклических платежей используйте последовательные формулы: в строке n = EDATE(prev_date, 1).
- Для документов, используемых в разных локалях, приводите даты к явному формату через TEXT(date, “dd.MM.yyyy”).
Роль‑ориентированные рекомендации
Для бухгалтера:
- Используйте EDATE для расчёта сроков оплат и напоминаний. Проверяйте формат ввода дат от поставщиков.
Для HR:
- Расчёт дат окончания испытательных сроков: дата приёма + количество месяцев.
Для менеджера проекта:
- Формируйте график релизов, учитывайте последний день месяца через EOMONTH.
Ментальные модели
- Подумайте о EDATE как о «перемещении указателя месяца» при сохранении относительного дня, если он существует.
- При переносе на месяцы с меньшим числом дней EDATE «сжимает» дату до последнего дня месяца.
Глоссарий (одно предложение на термин)
- date value — внутреннее числовое представление даты в Google Sheets, где 30.12.1899 = 0.
- EOMONTH — функция, возвращающая последний день смещённого месяца.
- DATEVALUE — функция для преобразования текстовой даты в date value.
Итог
EDATE — базовый, но мощный инструмент для рабочих таблиц: расчёт сроков, графиков платежей и планирования. Он корректно работает с переносом дат в месяцах разной длины и хорошо сочетается с EOMONTH, DATE и DATEVALUE. Добавьте обработку ошибок и тесты приёма в свои шаблоны, чтобы избежать неявных багов с форматами и старыми датами.
Ключевые рекомендации:
- Проверяйте корректность входных дат.
- Используйте EOMONTH, если нужен конец месяца.
- Обрабатывайте ошибки через IFERROR.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone