Как сложить дату и месяцы в Excel: все способы с примерами

Работа с датами в Microsoft Excel часто вызывает вопросы у пользователей, особенно когда речь идёт о сложении дат с месяцами. На первый взгляд задача кажется простой: прибавить к 15.03.2026 три месяца и получить 15.06.2026. Но что если прибавляемые месяцы переходят через год? Или если исходная дата — последнее число месяца (например, 31.01.2026 + 1 месяц)? В таких случаях Excel ведёт себя неочевидно, а стандартное сложение может привести к ошибке #ЧИСЛО!.

Эта статья раскроет все возможные способы сложения дат и месяцев в Excel — от базовых формул до продвинутых функций, включая обработку исключительных случаев. Мы разберём, почему =A1+30 (прибавление дней) не равно =A1+1 (прибавлению месяца), как работает функция ДАТАМЕС в разных версиях программы, и что делать, если результат выходит за пределы текущего года. Особое внимание уделим проблеме "31-го числа" и способам её обхода без ручной правки.

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

Почему нельзя просто сложить дату и число месяцев?

Многие пользователи пытаются прибавить месяцы к дате так же, как дни — например, вводят формулу =A1+3, ожидая, что к дате в ячейке A1 добавятся 3 месяца. Однако Excel интерпретирует числа как дни, а не месяцы. В результате 15.01.2026 + 3 станет 18.01.2026, а не 15.04.2026.

Корень проблемы кроется в том, как Excel хранит даты. Внутри программы любая дата — это порядковый номер, где 1 соответствует 01.01.1900, 2 — 02.01.1900 и так далее. При сложении с числом Excel автоматически добавляет именно дни, а не месяцы или годы. Чтобы прибавить месяцы, нужны специальные функции или обходные пути.

Вторая ловушка — неравномерная длительность месяцев. Февраль может иметь 28 или 29 дней, апрель — 30, а август — 31. Если исходная дата — 31.01.2026, то прибавление одного месяца логично должно дать 28.02.2026 (или 29.02.2026 в високосный год), но Excel по умолчанию вернёт 03.03.2026, что часто вводит в заблуждение.

Именно поэтому для работы с месяцами требуются dedicated-функции, о которых пойдёт речь далее.

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

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

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

Примеры использования:

  • 📅 =ДАТАМЕС("15.03.2026"; 3) → вернёт 15.06.2026
  • 📅 =ДАТАМЕС(A1; -2) → отнимет 2 месяца от даты в ячейке A1
  • 📅 =ДАТАМЕС("31.01.2026"; 1) → вернёт 28.02.2026 (автоматическая корректировка)

Главное преимущество ДАТАМЕС — автоматическая обработка "несуществующих дат". Если результат выходит за пределы месяца (например, 31.04.2026), функция вернёт последнее возможное число (в данном случае 30.04.2026). Это избавляет от ручной проверки и ошибок #ЧИСЛО!.

⚠️

Внимание: В Excel 2003 и более ранних версиях функция ДАТАМЕС отсутствует. Вместо неё используйте ДАТА с ручным вычислением года и месяца (см. Способ 3).

Убедитесь, что ячейка с датой имеет формат "Дата" (не "Текст" или "Общий")|Проверьте версию Excel (ДАТАМЕС доступна с 2007 года)|Для отрицательных месяцев (вычитание) используйте знак "-" перед числом|Если результат "----", проверьте корректность исходной даты-->

Способ 2: Функция ЕДАТА (EOMONTH) для последних чисел месяца

Функция ЕДАТА (или EOMONTH — "end of month") возвращает последний день месяца, отстоящего на заданное количество месяцев от исходной даты. Она полезна, когда нужно гарантированно получить конец месяца независимо от исходного числа.

Синтаксис:

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

Примеры:

  • 📅 =ЕДАТА("15.03.2026"; 0) → 31.03.2026 (последний день текущего месяца)
  • 📅 =ЕДАТА("31.01.2026"; 1) → 29.02.2026 (последний день февраля)
  • 📅 =ЕДАТА(A1; -3) → последний день месяца, отстоящего на 3 месяца назад

Комбинация ЕДАТА с ДЕНЬ позволяет эмулировать поведение ДАТАМЕС для любых чисел:

=ЕДАТА(A1; B1) - ДЕНЬ(ЕДАТА(A1; B1)) + ДЕНЬ(A1)

Эта формула прибавляет B1 месяцев к дате в A1, сохраняя исходный день (если он существует в целевом месяце) или корректируя его до последнего возможного числа.

⚠️

Внимание: ЕДАТА также отсутствует в Excel 2003. Для старых версий используйте комбинацию ДАТА + ДЕНЬ (см. следующий раздел).

Способ 3: Ручное вычисление с функциями ДАТА, ГОД, МЕСЯЦ, ДЕНЬ

Если в вашей версии Excel нет ДАТАМЕС или ЕДАТА, можно вручную разложить дату на компоненты (год, месяц, день), выполнить арифметические операции, а затем собрать дату обратно. Формула выглядит так:

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

где A1 — ячейка с исходной датой, а B1 — количество прибавляемых месяцев.

Пример:

  • 📅 Для A1 = 15.03.2026 и B1 = 3 формула вернёт 15.06.2026.
  • 📅 Для A1 = 31.01.2026 и B1 = 1 результат будет ошибочным: 03.03.2026 (так как 31 февраля не существует).

Чтобы исправить проблему с "несуществующими датами", добавьте проверку с помощью ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ДАТА(ГОД(A1); МЕСЯЦ(A1)+B1; ДЕНЬ(A1)); ЕДАТА(A1; B1))

Эта формула сначала пытается вернуть дату с исходным числом, а если возникает ошибка — подставляет последнее число месяца.

Альтернативный вариант (без ЕДАТА):

=ДАТА(ГОД(A1) + ОТБР((МЕСЯЦ(A1) + B1 - 1) / 12); ОСТАТ(МЕСЯЦ(A1) + B1 - 1; 12) + 1; МИН(ДЕНЬ(A1); ДЕНЬ(ДАТА(ГОД(A1); МЕСЯЦ(A1) + B1 + 1; 0))))
Эта формула корректно обрабатывает переходы через год и автоматически подставляет последнее число месяца, если исходное число в целевом месяце отсутствует.
Исходная дата Месяцев к добавлению Результат без корректировки Результат с корректировкой
31.01.2026 1 #ЧИСЛО! 29.02.2026
30.04.2026 2 #ЧИСЛО! 30.06.2026
15.12.2026 3 15.03.2026 15.03.2026

Способ 4: Использование последовательного прибавления дней (для небольших периодов)

Если вам нужно прибавить фиксированное количество месяцев, но при этом избежать проблем с "несуществующими датами", можно воспользоваться хитростью: прибавлять среднее количество дней в месяце (30.44). Формула будет такой:

=A1 + 30.44 * B1

где B1 — количество месяцев.

Примеры:

  • 📅 15.01.2026 + 30.44 * 1 ≈ 15.02.2026 (погрешность ±1 день)
  • 📅 31.01.2026 + 30.44 * 1 ≈ 02.03.2026 (вместо 28.02.2026)

Этот метод неточен и подходит только для приблизительных расчётов, например, когда нужно быстро оценить срок без строгой привязки к календарю. Для точных вычислений используйте ДАТАМЕС или ручную корректировку.

⚠️

Внимание: При таком способе даты могут "уплывать" на 1–2 дня из-за округления. Например, прибавление 6 месяцев (≈182 дня) к 31.01.2026 даст 31.07.2026, тогда как корректный результат — 31.07.2026 (совпадение здесь случайно). Для февраля погрешность будет больше.

Функция ДАТАМЕС (EDATE)|Ручное вычисление с ДАТА/ГОД/МЕСЯЦ|Функция ЕДАТА (EOMONTH)|Прибавление дней (30.44)|Другой вариант-->

Способ 5: Power Query для массовой обработки дат

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

Алгоритм действий:

  1. Выделите таблицу с датами и нажмите Данные → Из таблицы/диапазона (или Data → From Table/Range).
  2. В редакторе Power Query выделите столбец с датами, перейдите на вкладку Добавить столбец (Add Column) и выберите Настраиваемый столбец (Custom Column).
  3. Введите формулу:
    =Date.AddMonths([ВашСтолбец]; 3)

    где 3 — количество прибавляемых месяцев.

  4. Нажмите ОК, затем Закрыть и загрузить (Close & Load).

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

  • 🔄 Обрабатывает миллионы строк без замедления.
  • 🔄 Автоматически корректирует "несуществующие даты" (например, 31.04.2026 → 30.04.2026).
  • 🔄 Позволяет создавать сложные цепочки преобразований (например, прибавить месяцы, затем отформатировать результат).

⚠️

Внимание: В Power Query месяцы прибавляются с учётом календарной логики, но если исходная дата имеет формат текста (например, "15.03.2026" вместо настоящей даты), сначала преобразуйте её с помощью Date.From:
=Date.AddMonths(Date.From([ВашСтолбец]); 3)
Как проверить формат даты в Power Query?

В редакторе Power Query посмотрите на значок рядом с именем столбца. Если это 📅 (календарь) — формат корректный. Если 📝 (ABC) — данные воспринимаются как текст, и их нужно преобразовать с помощью Date.From или изменить тип столбца на "Дата".

Ошибки и их решения при сложении дат и месяцев

Даже с правильными формулами пользователи часто сталкиваются с ошибками. Рассмотрим типичные случаи и способы их исправления.

1. Ошибка #ЧИСЛО! (#VALUE!)

  • 🔹 Причина: Ячейка с датой имеет текстовый формат (например, "15.03.2026" вместо настоящей даты).
  • 🔹 Решение: Преобразуйте текст в дату с помощью ДАТАЗНАЧ:
    =ДАТАМЕС(ДАТАЗНАЧ(A1); B1)

2. Неправильный результат для 31-го числа

  • 🔹 Причина: Функция ДАТА не корректирует несуществующие даты (например, 31.04.2026).
  • 🔹 Решение: Используйте ДАТАМЕС или обёртку с ЕСЛИОШИБКА (см. Способ 3).

3. Результат "----" (пустое значение)

  • 🔹 Причина: Ячейка с исходной датой пустая или содержит некорректное значение (например, 0 или 45000 без формата даты).
  • 🔹 Решение: Проверьте данные с помощью ЕЧИСЛО:
    =ЕСЛИ(ЕЧИСЛО(A1); ДАТАМЕС(A1; B1); "Ошибка: неверная дата")

4. Ошибка #ИМЯ? (#NAME?)

  • 🔹 Причина: Опечатка в названии функции (например, ДАТАМЕСС вместо ДАТАМЕС).
  • 🔹 Решение: Проверьте синтаксис. В английской версии Excel используйте EDATE, в русской — ДАТАМЕС.
Ошибка Причина Решение
#ЧИСЛО! Текст вместо даты Используйте ДАТАЗНАЧ
31.04.2026 Несуществующая дата Замените на ДАТАМЕС или ЕДАТА
---- Пустая или некорректная ячейка Проверьте ЕЧИСЛО
#ИМЯ? Ошибка в названии функции Проверьте синтаксис

Практические примеры: когда и какой способ использовать

Выбор метода зависит от задачи. Ниже — рекомендации для типовых сценариев:

1. Простое прибавление месяцев к одной дате

  • 📌 Способ: ДАТАМЕС (самый простой и надёжный).
  • 📌 Пример: =ДАТАМЕС("15.03.2026"; 6) → 15.09.2026.

2. Расчёт дедлайнов (последний день месяца)

  • 📌 Способ: ЕДАТА.
  • 📌 Пример: =ЕДАТА(A1; 1) для даты 15.03.2026 вернёт 31.03.2026.

3. Обработка больших таблиц (тысячи строк)

  • 📌 Способ: Power Query с Date.AddMonths.
  • 📌 Пример: Загрузка данных из 1С или CRM с последующим прибавлением месяцев ко всем строкам.

4. Совместимость со старыми версиями Excel (2003 и ранее)

  • 📌 Способ: Ручное вычисление с ДАТА, ГОД, МЕСЯЦ и корректировкой через ЕСЛИОШИБКА.
  • 📌 Пример:
    =ЕСЛИОШИБКА(ДАТА(ГОД(A1); МЕСЯЦ(A1)+B1; ДЕНЬ(A1)); ДАТА(ГОД(A1); МЕСЯЦ(A1)+B1+1; 0))

5. Приблизительные расчёты (например, для графиков)

  • 📌 Способ: Прибавление дней (=A1 + 30.44 * B1).
  • 📌 Пример: Быстрая оценка срока выполнения проекта без точной привязки к календарю.

Для наглядности ниже представлена таблица с сравнением методов:

Задача Рекомендуемый способ Пример формулы Плюсы Минусы
Точное прибавление месяцев ДАТАМЕС =ДАТАМЕС(A1; 3) Корректно обрабатывает все случаи Не работает в Excel 2003
Последний день месяца ЕДАТА =ЕДАТА(A1; 1) Всегда возвращает валидную дату Требует Excel 2007+
Массовая обработка Power Query Date.AddMonths([Date]; 3) Быстро, даже для миллионов строк Требует Excel 2016+
Совместимость со старыми версиями Ручное вычисление =ДАТА(ГОД(A1); МЕСЯЦ(A1)+B1; ДЕНЬ(A1)) Работает везде Сложная формула, возможны ошибки

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

Можно ли в Excel прибавить к дате одновременно месяцы и дни?

Да, для этого комбинируйте функции. Например, чтобы прибавить 2 месяца и 5 дней:

=ДАТАМЕС(A1; 2) + 5

Сначала ДАТАМЕС добавляет месяцы, затем прибавляются дни.

Почему при прибавлении 12 месяцев к 31.12.2026 получается 31.12.2026, а не 30.12.2026?

Потому что 31 декабря существует в обоих годах. Функция ДАТАМЕС корректирует дату только если исходное число отсутствует в целевом месяце (например, 31 апреля → 30 апреля). Для декабря корректировка не нужна.

Как прибавить месяцы к дате в формате "март 2026" (без числа)?

Сначала преобразуйте текст в дату с помощью ДАТАЗНАЧ или 1 & ".03.2026" (где 03 — номер месяца), затем применяйте ДАТАМЕС. Например:

=ДАТАМЕС(ДАТАЗНАЧ("1." & "март 2026"); 1)
Можно ли прибавить месяцы к дате в Google Sheets?

Да, в Google Таблицах также есть функция ДАТАМЕС (или EDATE в английской версии). Синтаксис идентичен Excel:

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

Для корректировки "несуществующих дат" используйте те же приёмы, что и в Excel.

Как сделать так, чтобы при прибавлении месяцев к 31.01.2026 всегда получалось 28.02.2026, а не 03.03.2026?

Используйте комбинацию ЕДАТА и ДЕНЬ:

=ЕДАТА(A1; B1) - ДЕНЬ(ЕДАТА(A1; B1)) + МИН(ДЕНЬ(A1); ДЕНЬ(ЕДАТА(A1; B1)))

Эта формула сохраняет исходное число, если оно существует в целевом месяце, или подставляет последнее число месяца.