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

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

В этой статье мы разберём все возможные способы — от элементарных формул до автоматизации через VBA, — а также покажем, как избежать типичных ошибок. Вы узнаете, какой метод выбрать в зависимости от версии Excel (2010, 2016, 2019, 365) и специфики вашей задачи.

Если вы никогда не работали с датами в Excel, начните с базовых принципов: программа хранит даты как последовательные числа (начиная с 1 января 1900 года), где 1 = 1 день. Это значит, что арифметические операции с датами возможны, но требуют аккуратности. Например, простое сложение +90 (дней) не равно прибавлению 3 месяцев — результат будет искажён из-за разной длины месяцев.

1. Простой способ: функция ДАТАМЕС (EDATE)

Самый надёжный и рекомендуемый метод — использование функции ДАТАМЕС (или EDATE в английской версии). Она специально создана для добавления/вычитания месяцев к дате с учётом всех нюансов календаря.

Формула выглядит так:

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

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

=ДАТАМЕС(A1; 3)
  • ✅ Автоматически корректирует даты при переходе через год (например, 31.12.2023 + 1 месяц = 31.01.2026)
  • ✅ Учитывает високосные годы (29 февраля)
  • ⚠️ Требует подключения надстройки "Анализ данных" в Excel 2010-2013 (в новых версиях доступна по умолчанию)

2. Альтернатива: комбинация функций ГОД, МЕСЯЦ и ДЕНЬ

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

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

Эта формула разбирает исходную дату на компоненты (год, месяц, день), прибавляет 3 к месяцу, а затем собирает дату обратно. Важный нюанс: если результат выходит за пределы 12 месяцев, год автоматически увеличивается. Например:

  • 📅 15.11.2023 + 3 месяца = 15.02.2026
  • 📅 31.01.2023 + 1 месяц = 28.02.2023 (корректируется на последний день февраля)

Ошибка #ЧИСЛО! появится, если итоговый месяц превысит 12, но год не обновится. Чтобы этого избежать, используйте модифицированную формулу:

=ЕСЛИ(МЕСЯЦ(A1)+3>12; ДАТА(ГОД(A1)+1; МЕСЯЦ(A1)+3-12; ДЕНЬ(A1)); ДАТА(ГОД(A1); МЕСЯЦ(A1)+3; ДЕНЬ(A1)))
📊 Какую версию Excel вы используете?
Excel 2010 или старше
Excel 2013-2016
Excel 2019
Excel 365 (онлайн/десктоп)
Не знаю

3. Прибавление месяцев с учётом рабочих дней

Если вам нужно не просто сдвинуть дату на 3 месяца, а найти рабочий день через 3 месяца (исключая выходные и праздники), используйте комбинацию ДАТАМЕС + РАБДЕНЬ:

=РАБДЕНЬ(ДАТАМЕС(A1; 3); 0)

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

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

=РАБДЕНЬ(ДАТАМЕС(A1; 3); 0; $C$1:$C$10)

где $C$1:$C$10 — список праздников.

Что делать, если функция РАБДЕНЬ отсутствует?

В Excel 2010 и старше РАБДЕНЬ доступна только после установки надстройки "Пакет анализа". Альтернатива — использовать формулу массива:

=МИН(ЕСЛИ(ЧИСТРАБДНИ(ДАТАМЕС(A1;3);ДИАПАЗОН_ПРАЗДНИКОВ;1)=0;"";ДАТАМЕС(A1;3)))

Завершите ввод комбинацией Ctrl+Shift+Enter (в новых версиях Excel работает без этого).

4. Динамическое прибавление месяцев в таблицах

Если вам нужно прибавить 3 месяца ко всем датам в столбце, используйте протягивание формулы:

  1. Введите формулу (например, =ДАТАМЕС(A2; 3)) в первую ячейку результата.
  2. Наведите курсор на правый нижний угол ячейки (появится крестик +).
  3. Дважды кликните или протяните вниз до конца диапазона.

Для автоматизации процесса создайте выпадающий список с количеством месяцев:

  • 🔹 Выделите ячейку для списка (например, B1).
  • 🔹 Перейдите в Данные → Проверка данных → Список.
  • 🔹 Введите значения: 1, 2, 3, 6, 12.
  • 🔹 Используйте формулу: =ДАТАМЕС(A1; B1).
Исходная дата Месяцев к добавлению Результат Формула
15.03.2023 3 15.06.2023 =ДАТАМЕС(A2; B2)
31.01.2023 1 28.02.2023 =ДАТАМЕС(A3; B3)
15.12.2023 2 15.02.2026 =ДАТАМЕС(A4; B4)

5. Автоматизация через VBA (для продвинутых пользователей)

Если вам нужно прибавить 3 месяца к сотням ячеек или интегрировать операцию в макрос, используйте VBA. Откройте редактор (Alt + F11) и вставьте следующий код в модуль:

Sub AddThreeMonths()

Dim rng As Range

Dim cell As Range

' Выбираем диапазон с датами (например, столбец A)

Set rng = Selection

For Each cell In rng

If IsDate(cell.Value) Then

cell.Offset(0, 1).Value = DateAdd("m", 3, cell.Value)

End If

Next cell

End Sub

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

  1. Выделите ячейки с датами.
  2. Запустите макрос (F5 или через Вид → Макросы).
  3. Результаты появятся в соседнем столбце.
⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm. Если ваш файл сохранён как .xlsx, Excel заблокирует выполнение кода. Сохраните файл заново, выбрав тип "Книга Excel с поддержкой макросов".

Убедитесь, что включена вкладка "Разработчик" (Файл → Параметры → Настройка ленты)|Сохраните файл как .xlsm|Отключите блокировку макросов в Центре управления безопасностью|Сделайте резервную копию данных-->

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

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

  • 🚫 #ЗНАЧ! — ячейка содержит текст, а не дату. Проверьте формат (Формат ячеек → Дата).
  • 🚫 #ЧИСЛО! — результат выходит за пределы допустимых дат (01.01.1900 — 31.12.9999). Используйте формулу с проверкой:
    =ЕСЛИ(ДАТАМЕС(A1;3)>ДАТА(9999;12;31);"Ошибка";ДАТАМЕС(A1;3))
  • 🚫 Некорректный февраль — если исходная дата 31.01.2023, то +1 месяц даст 28.02.2023 (или 29.02 в високосный год). Это не ошибка, а особенность Excel!
⚠️ Внимание: Если вы копируете даты из внешних источников (например, с сайтов), Excel может распознать их как текст. Преобразуйте в дату с помощью ДАТАЗНАЧ:
=ДАТАМЕС(ДАТАЗНАЧ(A1); 3)

7. Примеры для специфических задач

Задача 1: Прибавить 3 месяца к дате, но если результат попадает на выходной, перенести на следующий понедельник.

Решение:

=ЕСЛИ(ЧИСТРАБДНИ(ДАТАМЕС(A1;3);1)=0; ДАТАМЕС(A1;3)+2; ДАТАМЕС(A1;3)+1)

Задача 2: Вычислить дату через 3 месяца и 15 дней.

Решение:

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

Задача 3: Прибавить 3 месяца только к датам, которые старше текущей.

Решение:

=ЕСЛИ(A1<СЕГОДНЯ(); ДАТАМЕС(A1; 3); "")

FAQ: Частые вопросы

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

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

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

Это происходит из-за неправильного формата ячейки. Выделите ячейку, нажмите Ctrl+1, выберите категорию "Дата" и укажите нужный формат (например, 14.03.2001).

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

В Google Sheets используется та же функция =ДАТАМЕС(A1; 3), но синтаксис может отличаться в зависимости от региональных настроек (разделитель — запятая , вместо точки с запятой).

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

Да, комбинируйте функции:

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

Здесь мы прибавляем 1 год и 3 месяца.

Как сделать так, чтобы прибавление месяцев работало автоматически при изменении исходной даты?

Используйте динамические массивыExcel 365):

=ДАТАМЕС(A2:A100; 3)

Формула автоматически обновит все результаты при изменении данных в столбце A.