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

Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных, планировании проектов или ведении финансовой отчётности. Часто требуется сдвинуть дату на определённое количество месяцев: рассчитать срок действия договора, спрогнозировать дату завершения этапа проекта или определить дату следующего платежа. На первый взгляд задача простая, но Excel хранит даты в виде чисел, а месяцы имеют разное количество дней — это создаёт нюансы.

Многие пользователи пытаются просто сложить ячейки с датой и числом месяцев, но получают ошибки или некорректные результаты. Например, прибавление 3 месяцев к 31 января должно дать 30 апреля, а не несуществующую дату 31 апреля. В этой статье мы разберём 5 надёжных способов прибавить месяцы к дате — от базовых функций до продвинутых приёмов с учётом всех edge-cases.

Если вы работаете с большими массивами данных, важно выбрать метод, который не только даст правильный результат, но и будет оптимальным по производительности. Например, функция ДАТАМЕС подходит для большинства задач, но в некоторых случаях лучше использовать комбинацию ДАТА + ГОД/МЕСЯЦ. Мы также рассмотрим, как обрабатывать отрицательные значения (вычитание месяцев) и что делать, если результат выходит за пределы текущего года.

Особое внимание уделим типичным ошибкам: почему формула возвращает #ЧИСЛО!, как избежать сбоев при работе с датами до 1900 года, и почему иногда Excel "округляет" даты не так, как вы ожидаете. В конце статьи вы найдёте FAQ с ответами на частые вопросы и сравнительную таблицу всех методов — это поможет выбрать лучший вариант для вашей задачи.

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

Функция ДАТАМЕС (англ. EDATE) специально создана для добавления месяцев к дате. Она автоматически корректирует результат, если день исходной даты отсутствует в целевом месяце. Например, ДАТАМЕС("31.01.2026"; 1) вернёт 28.02.2026 (или 29.02 в високосный год), а не ошибку.

Синтаксис функции:

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

где:

  • 📅 начальная_дата — ячейка с датой или дата в формате "ДД.ММ.ГГГГ" (в кавычках).
  • ➕➖ количество_месяцев — целое число (может быть отрицательным для вычитания месяцев).

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

=ДАТАМЕС(A2; B2)

где A2 содержит дату 15.05.2026, а B2 — число 3. Результат: 15.08.2026.

Важно: функция ДАТАМЕС доступна только в Excel 2007 и новее. В старых версиях используйте комбинацию ДАТА + ГОД/МЕСЯЦ (см. следующий раздел).

⚠️ Внимание: Если в ячейке с количеством месяцев указано не целое число (например, 2,5), Excel округлит его до ближайшего целого. Чтобы избежать ошибок, используйте функцию ОКРУГЛ или ЦЕЛОЕ.
📊 Какую версию Excel вы используете?
Excel 2010 или старше
Excel 2013-2019
Excel 365 (подписка)
LibreOffice Calc
Другой

2. Комбинация ДАТА + ГОД/МЕСЯЦ — универсальный метод

Если функция ДАТАМЕС недоступна (например, в LibreOffice Calc или старых версиях Excel), используйте формулу на основе функций ДАТА, ГОД и МЕСЯЦ. Этот метод работает во всех версиях и позволяет гибко управлять датами.

Синтаксис:

=ДАТА(ГОД(начальная_дата); МЕСЯЦ(начальная_дата) + количество_месяцев; ДЕНЬ(начальная_дата))

Пример:

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

где A231.12.2023, B21. Результат: 31.01.2026.

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

  • ✅ Работает во всех версиях Excel и аналогах (Google Sheets, Calc).
  • ✅ Позволяет добавлять не только месяцы, но и годы/дни в одной формуле.
  • 🔄 Легко модифицируется для вычитания месяцев (используйте отрицательное значение).
⚠️ Внимание: Если сумма МЕСЯЦ(начальная_дата) + количество_месяцев превышает 12, Excel автоматически скорректирует год. Например, МЕСЯЦ("01.11.2023") + 2 даст январь 2026 года (а не 13-й месяц).

Убедитесь, что ячейка с датой отформатирована как "Дата"|Проверьте, что количество месяцев — целое число|Тестируйте формулу на крайних случаях (31 января, 28 февраля)|Используйте функцию ЕЧИСЛО для обработки ошибок-->

3. Функция ЕДАТА — альтернатива для финансовых расчётов

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

Синтаксис:

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

Примеры:

  • 📅 =ЕДАТА("15.03.2026"; 0)31.03.2026 (последний день текущего месяца).
  • 📅 =ЕДАТА("15.03.2026"; 1)30.04.2026 (последний день следующего месяца).
  • 📅 =ЕДАТА("15.03.2026"; -1)29.02.2026 (последний день предыдущего месяца).

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

=ЕДАТА(A2; B2) - ДЕНЬ(ЕДАТА(A2; B2)) + ДЕНЬ(A2)

Эта формула добавляет месяцы с сохранением исходного дня (если он существует в целевом месяце).

Функция Синтаксис Пример Результат
ДАТАМЕС =ДАТАМЕС(A2; B2) A2=31.01.2026, B2=1 28.02.2026
ЕДАТА =ЕДАТА(A2; B2) A2=15.03.2026, B2=0 31.03.2026
ДАТА+ГОД/МЕСЯЦ =ДАТА(ГОД(A2); МЕСЯЦ(A2)+B2; ДЕНЬ(A2)) A2=30.04.2026, B2=2 30.06.2026

4. Использование Power Query для массовой обработки

Если вам нужно прибавить месяцы к сотням или тысячам дат, ручное применение формул займёт много времени. В этом случае удобно использовать Power Query — инструмент для трансформации данных, доступный в Excel 2016+ и Excel 365.

Пошаговая инструкция:

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

    где 3 — количество месяцев, а [ВашСтолбец] — имя столбца с датами.

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

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

  • 🚀 Обрабатывает миллионы строк без замедления.
  • 🔄 Позволяет создавать многоступенчатые трансформации (например, сначала добавить месяцы, потом отфильтровать результаты).
  • 📊 Сохраняет шаги обработки — при обновлении исходных данных результат пересчитывается автоматически.
Как вернуть исходные данные после ошибки в Power Query?

Все трансформации в Power Query не разрушают исходные данные — они создают новый набор данных. Чтобы отменить изменения, просто удалите запрос или откройте историю шагов в редакторе и удалите ненужные операции.

5. Макросы VBA для автоматизации

Если вы часто работаете с датами и хотите ускорить процесс, напишите простой макрос на VBA. Например, этот код добавляет заданное количество месяцев ко всем выделенным ячейкам:

Sub AddMonthsToDates()

Dim cell As Range

Dim monthsToAdd As Integer

' Запрашиваем количество месяцев

monthsToAdd = InputBox("Введите количество месяцев для добавления:", "Добавление месяцев", 1)

' Проверяем, что пользователь ввёл число

If Not IsNumeric(monthsToAdd) Then Exit Sub

' Обрабатываем каждую выделенную ячейку

For Each cell In Selection

If IsDate(cell.Value) Then

cell.Value = DateAdd("m", monthsToAdd, cell.Value)

End If

Next cell

End Sub

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel, выделите ячейки с датами и запустите макрос через View → Macros (или нажмите Alt + F8).

Предупреждение: Макросы могут быть заблокированы настройками безопасности Excel. Чтобы разрешить их выполнение, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и выберите Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

6. Обработка ошибок и крайние случаи

При работе с датами в Excel часто возникают ошибки, особенно если исходные данные содержат некорректные форматы или крайние значения. Рассмотрим типичные проблемы и их решения:

Ошибка #ЧИСЛО! (#NUM!):

  • 🔹 Причина: Результат выходит за пределы поддерживаемого диапазона дат Excel (с 01.01.1900 по 31.12.9999).
  • 🔧 Решение: Используйте функцию ЕСЛИОШИБКА:
    =ЕСЛИОШИБКА(ДАТАМЕС(A2; B2); "Дата вне диапазона")

Некорректный результат для 31-го числа:

  • 🔹 Проблема: Прибавление месяцев к 31.01.2026 даёт 28.02.2026, но вам нужно 31.03.2026 (сдвиг на полный месяц).
  • 🔧 Решение: Используйте формулу с проверкой:
    =ЕСЛИ(ДЕНЬ(A2) > ДЕНЬ(ДАТАМЕС(A2; B2)); ДАТАМЕС(ДАТАМЕС(A2; B2 + 1); 0); ДАТАМЕС(A2; B2))

    Эта формула сдвигает дату на дополнительный месяц, если исходный день "выпадает" из целевого месяца.

Даты до 1900 года:

  • 🔹 Проблема: Excel не поддерживает даты до 01.01.1900 (в Windows) или 01.01.1904 (в Mac).
  • 🔧 Решение: Храните такие даты как текст и обрабатывайте их отдельно (например, через VBA или Power Query).

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

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

Нет, Excel не поддерживает дробные месяцы в функциях ДАТАМЕС или ЕДАТА. Чтобы прибавить 1.5 месяца, сначала добавьте 1 полный месяц, а затем 15 дней (половину от средней длины месяца):

=ДАТАМЕС(A2; 1) + 15

Или используйте точную формулу с учётом количества дней в месяце.

Почему функция ДАТАМЕС не работает в моём Excel?

Вероятные причины:

  • 📌 Вы используете Excel 2003 или более старую версию (функция появилась в 2007 году).
  • 📌 Надстройка Analysis ToolPak отключена. Включите её через Файл → Параметры → Надстройки → Управление: Надстройки Excel → Перейти → Analysis ToolPak.
  • 📌 Ячейка с датой имеет текстовый формат. Преобразуйте её в дату с помощью ДАТАЗНАЧ.

Как прибавить месяцы к дате в Google Sheets?

В Google Таблицах используйте те же функции, но с английскими названиями:

=EDATE(A2; B2)

или

=DATE(YEAR(A2); MONTH(A2) + B2; DAY(A2))

Синтаксис и логика работы идентичны Excel.

Можно ли прибавить месяцы с учётом рабочих дней?

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

=РАБДЕНЬ(ДАТАМЕС(A2; B2); 0)

где 0 означает, что нужно вернуть ближайший рабочий день (если дата попадает на выходной). Для кастомизации выходных дней используйте третий аргумент функции РАБДЕНЬ.

Как прибавить месяцы к дате в формате "месяц-год" (например, "март 2026")?

Сначала преобразуйте текст в дату с помощью ДАТАЗНАЧ или 1-е число месяца, затем применяйте ДАТАМЕС:

=ДАТАМЕС(ДАТАЗНАЧ("1-" & A2); B2)

где A2 содержит "март 2026", а B2 — количество месяцев. Для вывода результата в формате "месяц-год" используйте ТЕКСТ(результат; "мммм yyyy").