Как прибавить 9 месяцев к дате в Excel: формулы, ошибки и решения

Почему простой сложение дат в Excel часто даёт сбой

Добавить 9 месяцев к дате в Microsoft Excel кажется простой задачей — пока вы не сталкиваетесь с ошибками вроде #ЗНАЧ! или некорректными результатами из-за високосных лет. Многие пользователи ошибочно пытаются просто прибавить 9 к ячейке с датой, но это работает только для дней, а не для месяцев. Например, если к 15.01.2026 прибавить 9, Excel вернёт 24.01.2026 — совсем не то, что нужно.

Проблема усложняется, когда речь идёт о датах в конце месяца. Что произойдёт, если к 31.01.2026 прибавить 9 месяцев? Правильный ответ — 31.10.2026, но некоторые формулы могут вернуть 30.10.2026 или даже ошибку. В этой статье разберём 5 надёжных способов, которые учитывают все нюансы календаря, включая переходы между годами и месяцами разной длины.

Особенно важно понимать разницу между абсолютным и относительным прибавлением месяцев. В первом случае вы фиксируете количество дней (например, 270 дней ≈ 9 месяцев), во втором — оперируете именно месяцами как единицами измерения. Второй подход точнее, но требует специальных функций.

📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Способ 1: Функция ДАТАМЕС — самый простой и надёжный метод

Функция ДАТАМЕС (англ. EDATE) специально создана для добавления месяцев к датам. Её синтаксис:

=ДАТАМЕС(нач_дата; число_месяцев)

Пример: чтобы к дате в ячейке A1 прибавить 9 месяцев, используйте:

=ДАТАМЕС(A1; 9)

Преимущества метода:

  • 🔹 Автоматически учитывает разную длину месяцев (например, февраль с 28/29 днями).
  • 🔹 Корректно обрабатывает переходы между годами (например, 31.12.2026 + 1 месяц = 31.01.2026).
  • 🔹 Не требует ручных поправок для високосных лет.

Однако есть нюанс: если итоговая дата выходит за пределы текущего месяца (например, 31.01.2026 + 1 месяц), Excel вернёт последнее число следующего месяца (29.02.2026 для невисокосного года). Это поведение можно обойти с помощью комбинации функций (см. Способ 3).

Ячейка с датой имеет формат"Дата" (не"Текст" или"Общий")|Функция доступна в вашей версии Excel (отсутствует в Excel 2003)|Итоговая дата не выходит за пределы поддерживаемого диапазона (01.01.1900 — 31.12.9999)-->

Способ 2: Ручное сложение с учётом годов и месяцев

Если функция ДАТАМЕС по какой-то причине недоступна (например, в старых версиях Excel), можно воспользоваться комбинацией функций ДАТА, ГОД, МЕСЯЦ и ДЕНЬ:

=ДАТА(ГОД(A1); МЕСЯЦ(A1)+9; ДЕНЬ(A1))

Эта формула:

  1. Извлекает год, месяц и день из исходной даты.
  2. Прибавляет 9 к номеру месяца.
  3. Автоматически корректирует год, если сумма месяцев превышает 12.

Пример: для даты 15.06.2026 формула вернёт 15.03.2026 (6 + 9 = 15 → 15 - 12 = 3 месяц следующего года).

⚠️ Внимание: Если итоговый месяц превышает 12, но день исходной даты больше количества дней в целевом месяце (например, 31.01.2026 + 1 месяц), Excel вернёт ошибку #ЧИСЛО!. Чтобы избежать этого, используйте:
=ДАТА(ГОД(A1)+ЦЕЛОЕ((МЕСЯЦ(A1)+9-1)/12); ОСТАТ(МЕСЯЦ(A1)+9-1;12)+1; МИН(ДЕНЬ(A1); ДЕНЬ(ДАТА(ГОД(A1)+ЦЕЛОЕ((МЕСЯЦ(A1)+9)/12); ОСТАТ(МЕСЯЦ(A1)+9;12)+1; 0))))
Почему формула такая сложная?

Эта формула решает две задачи:

1. Корректно рассчитывает год и месяц с учётом перехода через декабрь (например, 11 + 9 = 20 → 2026 год, 8 месяц).

2. Ограничивает день итоговой даты последним днём целевого месяца, если исходный день"выпадает" (например, 31 января → 28/29 февраля).

Способ 3: Комбинация ДАТАМЕС и ЕСЛИОШИБКА для"выпадающих" дат

Чтобы избежать ошибок при добавлении месяцев к датам вроде 31.01.2026 или 30.02.2026 (которая изначально некорректна), используйте эту формулу:

=ЕСЛИОШИБКА(ДАТАМЕС(A1;9); ДАТА(ГОД(A1)+ЦЕЛОЕ(МЕСЯЦ(A1)/12)+ЦЕЛОЕ(9/12); ОСТАТ(МЕСЯЦ(A1)+9;12); ДЕНЬ(ДАТА(ГОД(A1)+ЦЕЛОЕ((МЕСЯЦ(A1)+9)/12); ОСТАТ(МЕСЯЦ(A1)+9;12)+1; 0))))

Как это работает:

  • 🔹 Сначала пытается применить ДАТАМЕС.
  • 🔹 Если возникает ошибка (например, для 31.01.2026 + 9 месяцев = 31.10.2026, но октябрь имеет только 31 день), формула рассчитывает последнее число целевого месяца.

Этот метод гарантированно вернёт корректную дату даже для"проблемных" случаев, таких как 31 января + 1 месяц или 30 февраля (которая будет преобразована в 28/29 февраля).

Исходная датаДАТАМЕС(A1;9)Формула с ЕСЛИОШИБКАПравильный результат
31.01.202630.10.202631.10.202631.10.2026
30.04.202630.01.202630.01.202630.01.2026
29.02.202629.11.202629.11.202629.11.2026
31.12.202630.09.202630.09.202630.09.2026

Способ 4: Использование Power Query для массового добавления месяцев

Если вам нужно прибавить 9 месяцев к сотням или тысячам дат, ручное применение формул неэффективно. В этом случае поможет Power Query (доступен в Excel 2016 и новее):

  1. Выделите диапазон с датами и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query добавьте настраиваемый столбец с формулой:
    =Date.AddMonths([ВашаДата], 9)
  3. Нажмите Закрыть и загрузить — новые даты появятся в отдельном столбце.

Преимущества Power Query:

  • 🔹 Обрабатывает миллионы строк без замедления.
  • 🔹 Автоматически обновляет результаты при изменении исходных данных.
  • 🔹 Поддерживает сложные преобразования (например, добавление месяцев с учётом рабочих дней).
⚠️ Внимание: Power Query использует M-язык, где месяцы считаются с учётом календарных правил, но для дат вроде 31.01.2026 он всё равно вернёт 30.10.2026. Чтобы исправить это, добавьте ещё один шаг с заменой:
= if Date.Day([НоваяДата]) < Date.Day([ИсходнаяДата]) then Date.EndOfMonth([НоваяДата]) else [НоваяДата]

Способ 5: VBA-скрипт для гибких расчётов

Если вам нужна максимальная гибкость (например, добавление месяцев с учётом рабочих дней или праздников), напишите простой макрос на VBA:

Function AddMonths(ByVal d As Date, ByVal months As Integer) As Date

AddMonths = DateSerial(Year(d), Month(d) + months, Day(d))

If Day(AddMonths) <> Day(d) Then

AddMonths = DateSerial(Year(AddMonths), Month(AddMonths) + 1, 0)

End If

End Function

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel и используйте функцию как обычно: =AddMonths(A1; 9).

Этот скрипт:

  • 🔹 Корректно обрабатывает"выпадающие" даты (например, 31.01.2026 + 9 месяцев = 31.10.2026).
  • 🔹 Работает в всех версиях Excel, включая 2003.
  • 🔹 Можно модифицировать для учёта праздников или рабочих календарей.

Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при работе с датами. Вот самые распространённые:

  1. Формат ячейки не"Дата": Если ячейка отформатирована как текст, Excel воспримет 15.06.2026 как строку, а не дату. Чтобы исправить, выделите ячейку и выберите формат Дата на вкладке Главная.
  2. Использование простого сложения: Формула =A1+9 прибавляет 9 дней, а не месяцев. Для месяцев нужны специальные функции.
  3. Игнорирование високосных лет: 29 февраля 2026 года + 12 месяцев должно дать 29 февраля 2026 года, но если 2026 не високосный, формула может вернуть ошибку.
  4. Переполнение диапазона дат: Excel поддерживает даты с 01.01.1900 по 31.12.9999. Прибавление 9 месяцев к 31.12.9999 вернёт ошибку.

Чтобы проверить, корректна ли ваша дата, используйте функцию ДАТАЗНАЧ:

=ЕСЛИ(ДАТАЗНАЧ(A1)=A1;"Дата корректна";"Ошибка формата")

FAQ: Ответы на частые вопросы

Можно ли прибавить 9 месяцев к дате без функций, только арифметически?

Технически да, но это ненадёжно. Например, формула =A1+270 (9 месяцев ≈ 270 дней) вернёт приблизительный результат, но не учтёт точную длину месяцев. Для точности используйте ДАТАМЕС.

Почему функция ДАТАМЕС возвращает 30.11.2026 для даты 31.01.2026 + 10 месяцев?

Потому что в октябре 31 день, а в ноябре — 30. ДАТАМЕС автоматически корректирует дату до последнего дня месяца, если исходный день"выпадает". Чтобы сохранить 31-е число, используйте формулу из Способа 3.

Как прибавить 9 месяцев к дате в Google Таблицах?

В Google Sheets используется та же функция EDATE (или ДАТАМЕС на русском). Синтаксис идентичен Excel. Для"выпадающих" дат применяйте =ARRAYFORMULA(EOMONTH(EDATE(A1;9);-1)).

Можно ли прибавить к дате 9 рабочих месяцев (исключая выходные)?

Да, но это требует комбинации функций. Пример для 9 месяцев по 20 рабочих дней:

=РАБДЕНЬ(A1; 9*20)

Для точного расчёта с учётом праздников добавьте второй аргумент с диапазоном праздничных дат.

Почему после добавления месяцев дата отображается как число (например, 45678)?

Это происходит, потому что ячейка имеет формат Общий или Числовой. Измените формат на Дата (Ctrl+1 → Число → Дата).