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

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

Вы когда-нибудь пытались просто прибавить 6 к ячейке с датой в Microsoft Excel, надеясь получить дату через полгода? Если да, то наверняка получили неожиданный результат. Дело в том, что Excel хранит даты как последовательные числа, где 1 соответствует 1 января 1900 года. Простое сложение добавляет дни, а не месяцы — поэтому прибавление 6 к дате сдвинет её всего на 6 дней вперед, а не на полгода.

Эта особенность часто становится источником ошибок. Например, если в ячейке A1 у вас записано 15.01.2026, то формула =A1+6 вернёт 21.01.2026 — совсем не то, что нужно. Чтобы корректно прибавить именно полгода, требуются специальные функции или обходные пути. В этой статье мы разберём 5 надёжных методов — от элементарных до продвинутых, включая обработку крайних случаев (например, 31 февраля).

Особое внимание уделим проблеме "перехода через год": если исходная дата — 31 декабря, то прибавление 6 месяцев должно дать 30 июня следующего года, а не мифическое 31 июня. Не все методы справляются с этим автоматически, поэтому мы отдельно отметим надёжные решения.

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

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

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

Чтобы прибавить полгода, используйте:

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

Главные преимущества этого метода:

  • ✅ Автоматически корректирует несуществующие даты (например, 31.01 + 1 месяц = 28.02 в невисокосный год)
  • ✅ Работает во всех версиях Excel, включая Excel Online и Google Sheets
  • ✅ Поддерживает отрицательные значения (чтобы отнять полгода, используйте =ДАТАМЕС(A1; -6))

Убедитесь, что ячейка с датой имеет формат "Дата"|Проверьте отсутствие текста в ячейке (используйте ЕЧИСЛО)|Для массовой обработки протяните формулу вниз за маркер заполнения|Сравните результат с ручным расчётом для крайних дат (31.12, 29.02)

-->

Ограничение: если в исходной ячейке не дата, а текст (например, "15 января"), функция вернёт ошибку #ЗНАЧ!. Чтобы избежать этого, предварительно преобразуйте текст в дату с помощью ДАТАЗНАЧ:

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

Метод 2: Комбинация ГОД, МЕСЯЦ и ДЕНЬ

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

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

Эта формула:

  1. Извлекает год, месяц и день из исходной даты
  2. Добавляет 6 к номеру месяца
  3. Собирает новую дату из полученных компонентов

Ключевая проблема этого метода — он не обрабатывает переход через год. Если исходный месяц + 6 > 12, формула вернёт ошибку. Чтобы исправить это, добавьте проверку:

=ЕСЛИ(МЕСЯЦ(A1)+6>12; ДАТА(ГОД(A1)+1; МЕСЯЦ(A1)+6-12; ДЕНЬ(A1)); ДАТА(ГОД(A1); МЕСЯЦ(A1)+6; ДЕНЬ(A1)))
Почему формула ломается на 31 декабря

При добавлении 6 месяцев к 31.12.2026 функция пытается создать дату 31.06.2026, которой не существует. Excel автоматически корректирует её до 30.06.2026, но если вам важно сохранить последний день месяца (например, для расчёта сроков договоров), используйте метод 4 с КОНМЕСЯЦА.

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

Метод 3: Использование КОНМЕСЯЦА для точных расчётов

Функция КОНМЕСЯЦА (англ. EOMONTH) возвращает последний день месяца, отстоящего на заданное количество месяцев от исходной даты. Это идеальный инструмент, если вам нужно прибавить полгода и при этом гарантированно получить последний день месяца (например, для расчёта дедлайнов).

Синтаксис:

=КОНМЕСЯЦА(исходная_дата; количество_месяцев)

Чтобы прибавить полгода и получить последний день месяца:

=КОНМЕСЯЦА(A1; 6)

Примеры результатов:

Исходная датаРезультат КОНМЕСЯЦА(A1;6)Пояснение
15.01.202631.07.2026Последний день июля
31.12.202630.06.2026Июнь не имеет 31-го числа
29.02.202631.08.2026Август имеет 31 день
30.06.202631.12.2026Декабрь имеет 31 день

Если вам нужно сохранить исходный день месяца (а не переходить на последний день), комбинируйте КОНМЕСЯЦА с ДЕНЬ:

=КОНМЕСЯЦА(A1; 6) - ДЕНЬ(КОНМЕСЯЦА(A1; 6)) + ДЕНЬ(A1)

ДАТАМЕС (EDATE)|КОНМЕСЯЦА (EOMONTH)|Ручной расчёт через ГОД/МЕСЯЦ/ДЕНЬ|VBA-макросы|Другой вариант-->

Метод 4: Динамические массивы (Excel 365 и 2021)

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

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

Результат автоматически "прольётся" на все строки, для которых есть исходные данные. Это удобно для:

  • 📊 Создания отчётов с прогнозными датами
  • 📅 Планирования проектов (сдвиг всех дедлайнов на 6 месяцев)
  • 🔄 Массового обновления календарей

Чтобы вернуть только уникальные месяцы после добавления полугода (например, для анализа сезонности), комбинируйте с УНИК:

=УНИК(МЕСЯЦ(ДАТАМЕС(A2:A100; 6)))

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

=ЕСЛИОШИБКА(ДАТАМЕС(A2:A100; 6); "")

Метод 5: Автоматизация через VBA

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

Function AddHalfYear(inputDate As Date) As Date

AddHalfYear = DateSerial(Year(inputDate), Month(inputDate) + 6, Day(inputDate))

' Автоматическая корректировка несуществующих дат (например, 31.04 → 30.04)

If Day(AddHalfYear) <> Day(inputDate) Then

AddHalfYear = DateSerial(Year(AddHalfYear), Month(AddHalfYear) + 1, 0)

End If

End Function

Теперь в Excel можно использовать:

=AddHalfYear(A1)

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

  • 🔄 Обрабатывает крайние случаи (31 декабря → 30 июня)
  • 📁 Можно сохранять в Персональной книге макросов для использования во всех файлах
  • 🛠 Интегрируется в сложные процедуры (например, автоматическое обновление графиков)

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

Function AddMonths(inputDate As Date, monthsToAdd As Integer) As Date

AddMonths = DateSerial(Year(inputDate), Month(inputDate) + monthsToAdd, Day(inputDate))

If Day(AddMonths) <> Day(inputDate) Then

AddMonths = DateSerial(Year(AddMonths), Month(AddMonths) + 1, 0)

End If

End Function

Теперь =AddMonths(A1; 6) прибавляет полгода, а =AddMonths(A1; -6) — отнимает.

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

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

⚠️ Внимание: Если после применения формулы вы видите пятизначное число (например, 45467) вместо даты, проверьте формат ячейки. Выделите её, нажмите Ctrl+1 и выберите категорию "Дата".

Ошибка #1: Текст вместо даты

Если ячейка содержит текст ("15 января" вместо 15.01.2026), все функции вернут #ЗНАЧ!. Решение:

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

Ошибка #2: Переход через год игнорируется

Формулы вроде =A1+"180" (добавление 180 дней) не учитывают разную длину месяцев. Например, 15.01.2026 + 180 дней = 13.07.2026, а не 15.07.2026. Для точного добавления полугода всегда используйте ДАТАМЕС или КОНМЕСЯЦА.

Ошибка #3: Локальные настройки

Если ваш Excel настроен на формат даты "месяц/день/год" (например, в американской локали), формула =ДАТА(2026; 6; 15) создаст 15 июня, а не 6 мая. Проверьте региональные настройки в Файл → Параметры → Язык.

Как проверить формат даты в ячейке

Выделите ячейку → нажмите Ctrl+1 → посмотрите на категорию вкладки "Число". Если там "Общий" или "Текстовый", Excel воспринимает содержимое как текст, а не дату.

Ошибка #4: Високосные годы

29 февраля существует только в високосные годы. Если вы прибавляете 6 месяцев к 29.02.2026, результат должен быть 29.08.2026. Но если исходная дата — 29.02.2023 (невисокосный год), Excel автоматически скорректирует её до 28.02.2023, а затем прибавит 6 месяцев. Чтобы избежать путаницы, используйте:

=ЕСЛИ(ДАТАЗНАЧ("29.02."&ГОД(A1))=A1; ДАТАМЕС(A1;6); ДАТАМЕС(ДАТА(ГОД(A1);2;28);6))

Практические примеры применения

Добавление полугода к датам — это не абстрактная задача, а реальная потребность в многих сферах. Вот несколько практических сценариев:

1. Управление проектами

Если у вас есть столбец с датами начала задач (B2:B100), а длительность каждой задачи — 6 месяцев, создайте столбец с датами завершения:

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

Чтобы визуализировать это на диаграмме Ганта, используйте Вставка → Гистограмма с накоплением.

2. Финансовое планирование

При расчёте графиков платежей по кредитам или инвестициям часто нужно сдвигать даты на полгода. Например, если в A2 указана дата первого платежа, то дата 7-го платежа (через полгода при ежемесячных выплатах) будет:

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

3. HR-аналитика

Для анализа текучести кадров можно сравнить даты приёма на работу (C2:C100) с датами через полгода, чтобы оценить, сколько сотрудников уволилось в этот период:

=СЧЁТЕСЛИ(D2:D100; "<"&ДАТАМЕС(C2; 6))

где D2:D100 — столбец с датами увольнения.

4. Логистика

При планировании поставок с учётом сезона (например, заказ товаров за полгода до пикового спроса) используйте:

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

Эта формула вернёт первую дату месяца, который наступит через полгода от сегодняшнего дня.

5. Юридические документы

Для автоматического расчёта сроков действия договоров (например, продление на полгода) комбинируйте с ЕСЛИ:

=ЕСЛИ(A2<СЕГОДНЯ(); "Просрочено"; ДАТАМЕС(A2; 6))

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

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

Да, но с оговорками. Если в ячейке A1 указана дата (например, 15.01.2026), выделите её, потяните за правый нижний угол (маркер заполнения) вниз, затем в контекстном меню выберите "Заполнить месяцы". Однако этот метод добавляет по одному месяцу за шаг. Чтобы добавить сразу 6 месяцев, после заполнения выделите диапазон и в меню Главная → Редактирование → Найти и выбрать → Выделение группы ячеек укажите шаг 6.

Почему после добавления полугода к 31.01.2026 я получаю 31.07.2026, хотя июля 31 дня нет?

Это особенность Excel: при добавлении месяцев к датам, которые не существуют в целевом месяце (например, 31 января + 1 месяц), Excel автоматически корректирует день до последнего возможного в месяце (28/29 февраля, 30 апреля и т.д.). Однако в некоторых локальных настройках это поведение может отличаться. Чтобы гарантированно получить последний день месяца, используйте КОНМЕСЯЦА.

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

Функции ДАТАМЕС и КОНМЕСЯЦА работают только с датами, игнорируя время. Чтобы добавить 6 месяцев к дате с временем (например, 15.01.2026 15:30), используйте:

=ДАТАМЕС(A1;6) + (A1 - ЦЕЛОЕ(A1))

Здесь ЦЕЛОЕ(A1) отсекает время, а (A1 - ЦЕЛОЕ(A1)) возвращает только временную часть, которую мы прибавляем обратно.

Можно ли прибавить полгода в Google Sheets?

Да, в Google Sheets используются те же функции, но на английском:

=EDATE(A1; 6)  // вместо ДАТАМЕС

=EOMONTH(A1; 6) // вместо КОНМЕСЯЦА

Также поддерживаются динамические массивы (в новых версиях) и пользовательские функции через Apps Script.

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

Для этого комбинируйте ДАТАМЕС с функцией РАБДЕНЬ:

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

Если нужно исключить ещё и праздники, укажите их в третьем аргументе:

=РАБДЕНЬ.МЕЖД(ДАТАМЕС(A1;6); 0; $E$1:$E$10)

где E1:E10 — диапазон с датами праздников.