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

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

Вы когда-нибудь пытались просто сложить дату с числом 3, надеясь получить результат через три месяца? Если да, то наверняка столкнулись с неожиданным результатом: Excel добавил не месяцы, а дни. Это происходит потому, что программа интерпретирует числа как дни при сложении с датами — стандартное поведение для всех электронных таблиц.

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

В этой статье мы разберём все надёжные способы прибавить три месяца к дате, включая нюансы работы с концом года, високосными месяцами и ошибками #ЧИСЛО!. Вы также узнаете, как избежать типичных ловушек при работе с датами в разных версиях Excel (включая Excel 365 и Excel 2019).

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

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

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

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

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

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

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

  • 🔹 Автоматически корректирует даты при переходе через год (например, 31.12.2023 + 3 месяца = 31.03.2026)
  • 🔹 Учитывает разную длину месяцев (в феврале не может быть 31-го числа)
  • 🔹 Работает во всех версиях Excel, включая Excel Online

Обратите внимание на особенность: если исходная дата — последнее число месяца (например, 31.01.2026), а прибавление месяцев приводит к месяцу, в котором такого числа не существует (например, апрель имеет только 30 дней), Excel автоматически подставит последнее возможное число (30.04.2026). Это поведение нельзя изменить — оно заложено в алгоритме функции.

Способ 2: Комбинация ДАТА + ГОД/МЕСЯЦ/ДЕНЬ

Если функция ДАТАМЕС по какой-то причине недоступна, можно использовать альтернативный подход с тремя функциями:

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

Разберём, как это работает:

  1. ГОД(A1) — извлекает год из исходной даты
  2. МЕСЯЦ(A1)+3 — прибавляет 3 к номеру месяца
  3. ДЕНЬ(A1) — сохраняет исходный день месяца

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

=ДАТА(2023; 11+3; 15) → вернёт 15.02.2026 (11+3=14, что соответствует февраль 2026)

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

Ошибка возникает, если результат превышает допустимые значения для даты (например, месяц >12 без корректировки года). Проверьте:

1. Правильность формата ячейки с исходной датой (должен быть "Дата", а не "Текст").

2. Отсутствие текста в ячейке (например, "январь 2026" вместо 01.01.2026).

3. Чтобы месяц не превышал 12, используйте формулу =ДАТА(ГОД(A1)+ЦЕЛОЕ((МЕСЯЦ(A1)+3-1)/12); ОСТАТ(МЕСЯЦ(A1)+3-1;12)+1; ДЕНЬ(A1)) для ручной корректировки.

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

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

Способ 3: Использование функции РАЗНДАТ (DATEDIF) для обратного расчёта

Функция РАЗНДАТ обычно применяется для вычисления разницы между датами, но с её помощью можно и прибавлять месяцы — правда, это потребует дополнительных действий. Алгоритм такой:

  1. Вычислите количество дней между исходной датой и датой через 3 месяца.
  2. Прибавьте это количество дней к исходной дате.

Формула будет выглядеть так:

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

Однако этот метод не рекомендуется для регулярного использования по двум причинам:

  • 🚫 Он менее точен, чем ДАТАМЕС, из-за ручной корректировки дней.
  • 🚫 Формула становится громоздкой и сложной для понимания.

Гораздо эффективнее использовать РАЗНДАТ для проверки результатов, полученных другими способами. Например, чтобы убедиться, что между 01.01.2026 и 01.04.2026 ровно 3 месяца:

=РАЗНДАТ("01.01.2026"; "01.04.2026"; "m")  → вернёт 3

Способ 4: Прибавление месяцев через Power Query (для больших массивов)

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

Загрузите данные в Power Query (Данные → Получить данные → Из таблицы/диапазона)

Выделите столбец с датами

Перейдите на вкладку Добавить столбец → Пользовательский столбец

Введите формулу =Date.AddMonths([ВашСтолбец]; 3)

Нажмите Закрыть и загрузить-->

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

  • 🔹 Обрабатывает миллионы строк без замедления.
  • 🔹 Сохраняет шаги преобразования для повторного использования.
  • 🔹 Позволяет добавлять месяцы с учётом локальных настроек даты.

Обратите внимание: функция Date.AddMonths в Power Query ведёт себя аналогично ДАТАМЕС — она корректирует даты при переходе через год и учитывает длину месяцев. Однако, в отличие от Excel, здесь нельзя использовать русские названия функций — только английский синтаксис.

Способ 5: VBA-скрипт для гибкого добавления месяцев

Если вам нужно не только прибавлять месяцы, но и учитывать рабочие/выходные дни или другие сложные условия, на помощь придёт VBA (Visual Basic for Applications). Ниже приведён пример макроса, который добавляет 3 месяца к выделенным датам:

Sub AddThreeMonths()

Dim cell As Range

For Each cell In Selection

If IsDate(cell.Value) Then

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

End If

Next cell

End Sub

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

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

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

  • 🔹 Можно добавлять месяцы с учётом пользовательских условий (например, пропускать выходные).
  • 🔹 Работает быстрее формул при обработке тысяч ячеек.
  • 🔹 Позволяет создавать собственные функции (UDF) для повторного использования.

Главный недостаток этого метода — он требует базовых знаний VBA и может быть заблокирован настройками безопасности Excel. Если макросы отключены, вам придётся временно изменить параметры в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов.

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

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

Ошибка Причина Решение
#ЧИСЛО! Недопустимая дата (например, 31 февраля) Используйте ДАТАМЕС или проверку ЕСЛИОШИБКА
#ЗНАЧ! Ячейка содержит текст вместо даты Преобразуйте текст в дату с помощью ДАТАЗНАЧ или измените формат ячейки
Неправильный год Формула не учитывает переход через декабрь Добавьте корректировку года: =ДАТА(ГОД(A1)+ЦЕЛОЕ((МЕСЯЦ(A1)+3)/12); ...)
Дата отображается как число Неверный формат ячейки Выберите формат "Дата" на вкладке Главная → Формат

Критическая ошибка: если вы работаете с датами до 1900 года, Excel может интерпретировать их некорректно из-за особенностей внутренней системы хранения дат (которая начинается с 1900 года). В этом случае используйте текстовый формат или специализированные надстройки.

Почему Excel показывает 1900 год вместо 1904?

В настройках Excel есть параметр Система дат 1904 (включается в Файл → Параметры → Дополнительно). Если он активен, то дата 1 соответствует 2 января 1904 года, а не 1 января 1900. Это может сбивать расчёты, поэтому перед работой с датами проверьте эту настройку.

Практические примеры: когда прибавление месяцев работает неочевидно

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

Пример 1: Конец года

Исходная дата: 30.11.2023. Прибавляем 3 месяца:

  • 📅 ДАТАМЕС: вернёт 28.02.2026 (корректно, так как в феврале 2026 года 29 дней, но 30-го не существует).
  • 📅 Ручное сложение: =A1+90 вернёт 28.02.2026, но это случайность — для других дат результат будет неверным.

Пример 2: Високосный год

Исходная дата: 29.01.2026 (високосный год). Прибавляем 12 месяцев:

  • 📅 ДАТАМЕС(A1; 12) вернёт 29.01.2026 — корректно, так как 2026 год не високосный, но 29 января в нём существует.
  • 📅 Если бы мы прибавили 12 месяцев к 29.02.2026, результат был бы 28.02.2026 (автоматическая корректировка).

Пример 3: Текстовые даты

Если дата хранится как текст (например, "31 января 2026"), формулы не будут работать. Сначала преобразуйте её в дату:

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

Или используйте комбинацию функций для извлечения дня, месяца и года из текста:

=ДАТАМЕС(ДАТА(ПРАВСИМВ(A1;4); ПОИСКПОЗ(ЛЕВСИМВ(A1;3);{"янв";"фев";"мар";...};0); ЛЕВСИМВ(A1;2)); 3)

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

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

Технически да, но это ненадёжно. Например, вы можете вручную прибавить количество дней, соответствующее трём месяцам (например, =A1+90 для приблизительного расчёта). Однако этот метод не учитывает:

  • 🔸 Разную длину месяцев (28, 30 или 31 день).
  • 🔸 Високосные годы.
  • 🔸 Переход через год.

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

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

Это означает, что ширина столбца недостаточна для отображения даты в текущем формате. Растяните столбец или измените формат на более компактный (например, ДД.ММ.ГГ вместо ДД ММММ ГГГГ). Также проверьте, что результат действительно является датой, а не ошибкой.

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

В Google Sheets используется та же функция ДАТАМЕС (или EDATE), но с английским синтаксисом. Пример:

=EDATE(A1; 3)

Также работают аналоги DATE, YEAR, MONTH и DAY для ручной сборки даты.

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

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

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

Или:

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

Порядок важен: сначала добавляем месяцы (чтобы корректно обработать переход через год), затем дни.

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

Для этого понадобится VBA или комбинация функций с проверкой дня недели. Пример формулы, которая прибавляет 3 месяца и пропускает субботы/воскресенья:

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

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