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

Почему простая арифметика с датами в Excel не работает

На первый взгляд, прибавить месяц к дате в Microsoft Excel кажется тривиальной задачей: взял ячейку с датой, добавил «+30» — и готово. Но такой подход обернётся ошибками уже в первых строках таблицы. Дело в том, что месяцы имеют разное количество дней (28, 30, 31), а февраль в високосные годы ещё и «подкидывает» 29-й день. Простая арифметика не учитывает эти нюансы, из-за чего 31 января + 1 месяц превращается в 2 марта вместо ожидаемого 28 февраля.

Кроме того, Excel хранит даты как последовательные числа (так называемый «серийный номер»), где 1 соответствует 1 января 1900 года. Прибавление числа к дате автоматически интерпретируется как добавление дней, а не месяцев. Например, формула =A1+30 сдвинет дату ровно на 30 дней вперёд, что не равносильно одному календарному месяцу. Для корректных расчётов нужны специализированные функции или обходные пути.

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

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

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

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

Где:

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

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

Исходная дата (A)ФормулаРезультат
31.01.2026=ДАТАМЕС(A2; 1)28.02.2026
15.03.2026=ДАТАМЕС(A3; -2)15.01.2026
30.04.2026=ДАТАМЕС(A4; 3)30.07.2026
⚠️ Внимание: Функция ДАТАМЕС() доступна только в Excel 2007 и новее. В старых версиях (Excel 2003 и ранее) её нет — используйте методы 3 или 4 из этой статьи.

Убедитесь, что ячейка с датой имеет формат "Дата" (а не "Текст")|Проверьте версию Excel (2007+)|Для отрицательных месяцев используйте знак "-" перед числом|Тестируйте результат на крайних датах (31.01, 28.02 и т.д.)

-->

Метод 2: Функция ЕДАТ() — альтернатива для финансовых расчётов

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

Пример:

=ЕДАТ(A2; 1)

Результат будет выглядеть как число (например, 45342), но после применения формата «Дата» к ячейке он преобразуется в корректную дату (например, 28.02.2026).

Преимущества ЕДАТ():

  • 📊 Точность: учитывает високосные годы и длину месяцев.
  • 🔄 Совместимость: работает во всех версиях Excel (включая 2003).
  • 💰 Удобна для финансовых моделей (например, графиков платежей).
⚠️ Внимание: Если после применения ЕДАТ() в ячейке отображается число вместо даты, выделите её, нажмите Ctrl+1, выберите формат «Дата» и укажите нужный вид (например, 14.03.2001).
📊 Какую функцию вы используете чаще для работы с датами?
ДАТАМЕС()
ЕДАТ()
Ручные формулы
Макросы
Не знаю, что это

Метод 3: Ручной расчёт с функциями ДАТА(), ГОД(), МЕСЯЦ(), ДЕНЬ()

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

  1. Извлечь год, месяц и день из исходной даты.
  2. Прибавить нужное количество месяцев к текущему месяцу.
  3. Собрать новую дату с учётом возможного перехода на следующий год (если месяц стал >12).

Формула:

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

Разберём на примере даты 31.01.2026:

  • 📅 ГОД(A2) → 2026
  • 📆 МЕСЯЦ(A2)+1 → 1 (январь) + 1 = 2 (февраль)
  • 🔢 ДЕНЬ(A2) → 31

Excel автоматически скорректирует 31 февраля на 28 февраля (или 29 в високосном году).

Что делать, если формула возвращает ошибку #ЧИСЛО!?

Ошибка #ЧИСЛО! появляется, если результат выходит за пределы допустимых дат Excel (с 01.01.1900 по 31.12.9999). Проверьте:

1. Исходная дата корректна (не текст).

2. Количество месяцев не приводит к году >9999 (например, прибавление 1000 месяцев к 2026 году).

3. Формат ячейки с результатом — "Общий" или "Дата".

Метод 4: Арифметика с учётом конца месяца (для старых версий Excel)

В Excel 2003 и более ранних версиях нет специализированных функций для месяцев, но можно обойти ограничение с помощью формулы:

=ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(ДАТА(ГОД(A2);МЕСЯЦ(A2)+1+1;0)); ДАТА(ГОД(A2);МЕСЯЦ(A2)+1+1;0); ДАТА(ГОД(A2);МЕСЯЦ(A2)+1;ДЕНЬ(A2)))

Логика работы:

  1. Проверяем, превышает ли текущий день количество дней в следующем месяце (например, 31 января > 28 февраля).
  2. Если да — возвращаем последний день следующего месяца (ДАТА(ГОД;МЕСЯЦ+2;0)).
  3. Если нет — просто прибавляем месяц, сохраняя день.

Этот метод гарантирует корректный результат даже для «проблемных» дат вроде 31.01 или 30.04.

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

Если вам нужно прибавлять месяцы к сотням строк или интегрировать операцию в сложный скрипт, поможет VBA. Ниже пример макроса, который добавляет 1 месяц ко всем выделенным ячейкам с датами:

Sub AddOneMonth()

Dim cell As Range

For Each cell In Selection

If IsDate(cell.Value) Then

cell.Value = DateSerial(Year(cell.Value), Month(cell.Value) + 1, Day(cell.Value))

End If

Next cell

End Sub

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

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

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

  • Скорость: обрабатывает тысячи строк за секунды.
  • 🔄 Гибкость: можно модифицировать для вычитания месяцев или добавления лет.
  • 📊 Интеграция: подходит для сложных автоматизированных отчётов.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не выполнится. Также убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы).

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

Excel не распознаёт текст как дату, если он записан в нестандартном формате (например, "январь 2026" или "01-2026"). В таких случаях функция ДАТАМЕС() вернёт ошибку #ЗНАЧ!. Чтобы исправить это, преобразуйте текст в дату с помощью:

=ДАТАЗНАЧ(ПОДСТАВИТЬ(A2; "январь"; "01"))

Другие распространённые ошибки:

  • 🗓️ Формат ячейки: Если результат отображается как число (например, 45342), измените формат на «Дата» (Ctrl+1 → Дата).
  • 🔙 Отрицательные месяцы: При вычитании месяцев (например, =ДАТАМЕС(A2; -5)) убедитесь, что итоговая дата не выходит за пределы 1900 года.
  • 📱 Региональные настройки: В англоязычных версиях Excel функции называются EDATE() и EOMONTH() вместо ЕДАТ().

Проверьте корректность расчётов на крайних датах:

Исходная датаОжидаемый результат (+1 месяц)Ошибочный результат
31.01.202628.02.202603.03.2026 (если использовать +30 дней)
30.04.202630.05.202630.04.2026 (если забыть прибавить месяц)
28.02.202628.03.202630.03.2026 (при ручном добавлении 30 дней)

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

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

Да, но сначала нужно преобразовать текст в полноценную дату. Используйте формулу:

=ДАТАМЕС(ДАТАЗНАЧ("1." & ПОДСТАВИТЬ(A2; "январь"; "01") & ".2026"); 1)

Где A2 — ячейка с текстом "январь 2026". Функция ПОДСТАВИТЬ заменяет название месяца на его номер, а ДАТАЗНАЧ преобразует строку в дату.

Почему после добавления месяца к 31.03.2026 получается 30.04.2026, а не 31.04?

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

=ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(ДАТА(ГОД(A2);МЕСЯЦ(A2)+1;1)-1); ДАТА(ГОД(A2);МЕСЯЦ(A2)+1;ДЕНЬ(ДАТА(ГОД(A2);МЕСЯЦ(A2)+1;1)-1)); ДАТА(ГОД(A2);МЕСЯЦ(A2)+1;ДЕНЬ(A2)))
Как прибавить месяц к дате в Google Таблицах?

В Google Sheets нет функции ДАТАМЕС(), но есть аналоги:

  • 📅 =EDATE(A2; 1) — полный аналог ЕДАТ() из Excel.
  • 🔄 =EOMONTH(A2; 0) + 1 — возвращает первый день следующего месяца.

Также работает ручная формула с DATE(), YEAR(), MONTH() и DAY().

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

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

=ЕСЛИ(ДЕНЬНЕД(ДАТАМЕС(A2;1);2)>5; ДАТАМЕС(A2;1)+7-ДЕНЬНЕД(ДАТАМЕС(A2;1);2); ДАТАМЕС(A2;1))

Эта формула сдвигает дату на следующий понедельник, если результат выпадает на субботу или воскресенье.

Как прибавить месяц к дате в Power Query?

В Power Query (инструмент для преобразования данных в Excel) используйте следующий код на языке M:

= Date.AddMonths([YourDateColumn], 1)

Где [YourDateColumn] — название столбца с датами. После применения преобразования не забудьте обновить запрос (Главная → Закрыть и загрузить).