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

Почему стандартное сложение не работает с датами

Вы когда-нибудь пытались просто сложить число 5 с датой в ячейке A1, надеясь получить дату через 5 лет? Если да, то наверняка получили ошибку или неожиданный результат. Дело в том, что Microsoft Excel хранит даты не как текст, а как последовательные числа — начиная с 1 января 1900 года (в Windows) или 1904 года (в Mac). Каждый новый день увеличивает это число на единицу.

Когда вы вводите в ячейку 15.05.2026, Excel воспринимает это как число 45415 (для системы 1900). Прибавление 5 к этой дате сдвинет её всего на 5 дней, а не лет. Вот почему прямая арифметика с датами требует специальных подходов.

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

Способ 1: Формула с функцией ДАТА

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

Формула для прибавления 5 лет:

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

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

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

Плюсы: работает во всех версиях Excel, учитывает високосные годы, не ломается при переходе через месяцы с разным количеством дней (например, 31 января + 5 лет = 28/29 февраля).

⚠️ Внимание: Если в ячейке A1 не дата, а текст (например, "15.05.2026"), формула вернёт ошибку #ЗНАЧ!. Проверьте формат ячейки через Формат ячеек → Числовые форматы → Дата.

Убедитесь, что ячейка с датой имеет формат "Дата"|

Проверьте отсутствие текста в ячейке (используйте =ЕТЕКСТ(A1))|

Если дата вводится вручную, используйте разделители, принятые в вашей системе (точка или косая черта)|

Для английской версии Excel замените "ДАТА" на "DATE"-->

Способ 2: Функция ДАТАМЕС (DATEADD в Power Query)

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

=ДАТАМЕС(A1; 5*12)

Здесь 5*12 означает 60 месяцев (то есть 5 лет). Функция автоматически корректирует дату, если результат выходит за пределы месяца. Например, 31.01.2026 + 5 лет станет 28.02.2029 (или 29.02.2029 в високосный год).

🔹 Нюанс: В Excel для Mac до 2011 года функции ДАТАМЕС нет — используйте ДАТА из первого способа.

Функция Пример Результат для 15.05.2026 Поддержка Mac
ДАТА(ГОД()+5;...) =ДАТА(ГОД(A1)+5; МЕСЯЦ(A1); ДЕНЬ(A1)) 15.05.2029 Да
ДАТАМЕС(; 5*12) =ДАТАМЕС(A1; 60) 15.05.2029 Начиная с 2011
A1 + 5*365 =A1+1825 10.05.2029 (неточно!) Да

Обратите внимание на строку с A1 + 5*365 — этот метод некорректен, так как не учитывает високосные годы. Разница между реальной датой и расчётной может достигать 2 дней за 5 лет!

Формулу с ДАТА()|

Функцию ДАТАМЕС()|

Ручной ввод|

Макрос VBA|

Другой вариант-->

Способ 3: Прибавление лет через Power Query

Если вы работаете с большими наборами данных, удобнее использовать Power Query (в Excel 2016+ или через надстройку в 2010/2013). Этот метод позволяет добавить годы к столбцу дат без формул.

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

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

Преимущество: Power Query обновляет результаты при изменении исходных данных (если использовать Обновить). Подходит для обработки тысяч строк.

⚠️ Внимание: В русскоязычной версии Power Query название функции — Date.AddYears, но в формуле нужно использовать английский синтаксис, даже если интерфейс на русском.

Способ 4: Макрос VBA для массового изменения

Для автоматизации добавления лет к сотням ячеек подойдёт макрос на VBA. Например, этот скрипт прибавляет 5 лет ко всем выделенным датам:

Sub AddFiveYears()

Dim cell As Range

For Each cell In Selection

If IsDate(cell.Value) Then

cell.Value = DateAdd("yyyy", 5, cell.Value)

End If

Next cell

End Sub

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

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

🔧 Настройка: Чтобы прибавлять другое количество лет, замените 5 в строке DateAdd("yyyy", 5, cell.Value).

Что делать если макрос не работает?

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

Проверьте, что выделенные ячейки содержат именно даты, а не текст (используйте =ТИП(A1)=1 для проверки).

Если даты в текстовом формате, предварительно преобразуйте их через ДАТАЗНАЧ() или ТЕКСТ.В.ДАТУ() (в новых версиях).

Способ 5: Динамические массивы (Excel 365 и 2021)

В последних версиях Excel (365 и 2021) появились динамические массивы, позволяющие обрабатывать целые диапазоны одной формулой. Например, чтобы прибавить 5 лет ко всему столбцу A и вывести результат в B, достаточно ввести в B1:

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

и нажать Enter. Формула автоматически "прольётся" на все ячейки B1:B100.

💡 Бонус: Если в столбце A есть пустые ячейки или текст, формула вернёт ошибку только для них, не ломая остальные расчёты.

Для фильтрации ошибок оберните формулу в ЕСЛИОШИБКА:

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

Способ 6: Прибавление лет с учётом рабочих дней

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

Формула:

=РАБДЕНЬ(A1; 5*365; [ДиапазонПраздников])

Где:

  • 📅 A1 — исходная дата;
  • 🔢 5*365 — приблизительное количество дней (уточните для вашего случая);
  • 🎉 [ДиапазонПраздников] — ссылка на ячейки с датами праздников (необязательно).

⚠️ Ограничение: Этот метод неточен, так как не учитывает високосные годы. Для точного расчёта сначала получите конечную дату через ДАТА(), а затем используйте РАБДЕНЬ() для корректировки на рабочие дни.

1. Сначала рассчитайте дату через 5 лет: =ДАТА(ГОД(A1)+5; МЕСЯЦ(A1); ДЕНЬ(A1)).

2. Затем найдите разницу в днях между исходной и конечной датой.

3. Примените РАБДЕНЬ() к исходной дате с этой разницей.-->

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

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

  1. Ошибка #ЗНАЧ! при использовании ДАТА():

    🔹 Причина: Ячейка содержит текст, а не дату. Например, "Май 2026" вместо "15.05.2026".

    🔧 Решение: Преобразуйте текст в дату с помощью =ДАТАЗНАЧ(A1) или =ТЕКСТ.В.ДАТУ(A1) (в Excel 2016+).

  2. Некорректный результат при сложении дней:

    🔹 Причина: Прибавление 5*365 не учитывает високосные годы.

    🔧 Решение: Используйте ДАТА() или ДАТАМЕС().

  3. Дата отображается как число:

    🔹 Причина: Ячейка имеет общий формат или числовой.

    🔧 Решение: Примените формат "Дата" через Ctrl+1.

  4. Макрос не работает с некоторыми датами:

    🔹 Причина: В ячейках текст, а не даты (например, "01.01.2026" как текст).

    🔧 Решение: Добавьте в макрос проверку If IsDate(cell.Value) Then.

  5. Power Query не распознаёт даты:

    🔹 Причина: Региональные настройки Excel (например, даты в формате "ММ/ДД/ГГГГ" вместо "ДД.ММ.ГГГГ").

    🔧 Решение: В Power Query выделите столбец → Преобразовать → Тип данных → Дата.

⚠️ Внимание: В Excel для Mac до 2011 года функция ДАТАМЕС отсутствует, а в версиях 2011–2016 может требовать установки надстройки Analysis ToolPak. Проверьте доступность функции через Формулы → Вставить функцию.

FAQ: Частые вопросы о прибавлении лет в Excel

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

Да, но с оговорками. Если в ячейке A1 дата 15.05.2026, выделите её, потяните за правый нижний угол (маркер заполнения) вниз, а затем в контекстном меню выберите Заполнить → Ряд → Арифметическая прогрессия с шагом 1 и единицей Год. Однако этот метод добавляет по 1 году за шаг — для 5 лет придётся повторить действие 5 раз или вручную изменить шаг на 5.

Почему после прибавления 5 лет к 29.02.2026 получается 28.02.2029, а не 29.02.2029?

Excel автоматически корректирует даты, если результат выходит за пределы существующего календаря. 2029 год не високосный, поэтому 29 февраля в нём нет. Чтобы сохранить день, используйте формулу:

=ЕСЛИ(И(МЕСЯЦ(A1)=2; ДЕНЬ(A1)=29; НЕ(ВИСОКОС(ГОД(A1)+5))); ДАТА(ГОД(A1)+5; 3; 1); ДАТА(ГОД(A1)+5; МЕСЯЦ(A1); ДЕНЬ(A1)))

Она переносит дату на 1 марта, если 29 февраля не существует в целевом году.

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

Excel воспринимает "Май 2026" как 1 мая 2026. Чтобы прибавить 5 лет к такому формату:

  1. Преобразуйте текст в дату: =ДАТАЗНАЧ("1 " & A1) (где A1 содержит "Май 2026").
  2. Прибавьте годы: =ДАТА(ГОД(ДАТАЗНАЧ("1 " & A1))+5; МЕСЯЦ(ДАТАЗНАЧ("1 " & A1)); 1).
  3. Отформатируйте результат как "ММММ ГГГГ" через Формат ячеек.
Можно ли прибавить 5 лет к дате в Google Таблицах?

Да, в Google Sheets используйте те же формулы, что и в Excel:

  • 📅 =DATE(YEAR(A1)+5; MONTH(A1); DAY(A1))
  • 📅 =EDATE(A1; 5*12)

Отличие только в названиях функций на английском и поддержке динамических массивов во всех аккаунтах (в отличие от Excel, где они есть только в 365/2021).

Как прибавить 5 лет ко времени (например, 15:30:00)?

Время в Excel — это дробная часть даты (где 1 = 24 часа). Чтобы прибавить годы к метке времени:

  1. Сначала создайте полную дату+время: =A1 + B1 (где A1 — дата, B1 — время).
  2. Прибавьте годы: =ДАТА(ГОД(A1)+5; МЕСЯЦ(A1); ДЕНЬ(A1)) + B1.
  3. Отформатируйте ячейку как дд.мм.гггг чч:мм:сс.

⚠️ При прибавлении лет к чистому времени (без даты) Excel вернёт ошибку, так как не может определить исходный год.