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

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

Чаще всего необходимость изменить дату возникает при импорте данных из внешних источников (например, 1C или PDF), когда формат ячеек сбивается. Или когда нужно обновить сотни строк с прошедшими датами на актуальные — делать это вручную нерационально. Мы покажем, как автоматизировать процесс, избежать ошибок с форматами и даже создать "умные" даты, которые будут обновляться сами.

Перед тем как приступить, проверьте версию вашего Excel: некоторые функции (например, ДАТАМЕС или РАБДЕНЬ.МЕЖД) доступны только в Excel 2019 и новее, а также в Microsoft 365. Для старых версий (Excel 2010–2016) потребуются альтернативные решения.

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

1. Ручное изменение даты: когда формат "сходит с ума"

Самый очевидный способ — просто кликнуть по ячейке с датой и ввести новое значение. Но здесь кроется подвох: Excel может интерпретировать ваш ввод не как дату, а как текст или число. Например, если вы введёте 31.12.2026 в ячейку с текстовым форматом, программа не распознает это как дату, и дальнейшие вычисления (например, разница в днях) будут невозможны.

Чтобы избежать этого:

  1. Выделите ячейку или диапазон с датами.
  2. Нажмите Ctrl+1 (или правой кнопкой → Формат ячеек).
  3. Вкладка Число → выберите Дата и укажите нужный формат (например, 14.03.2026 или 14 март 2026).

Если дата отображается как число (например, 45341), это значит, что Excel хранит её в внутреннем формате — количестве дней с 1 января 1900 года. Чтобы преобразовать обратно:

  • 📅 Выделите ячейку → Формат ячеекДата.
  • 🔄 Если не сработало, используйте формулу =ДАТАЗНАЧ(A1) (где A1 — ячейка с числом).
⚠️ Внимание: При копировании дат из веб-страниц или PDF они часто вставляются как текст. Проверяйте формат ячеек после импорта!

2. Замена даты с помощью функции "Найти и заменить"

Если нужно обновить одну и ту же дату во всём документе (например, заменить 31.12.2026 на 31.12.2026), используйте инструмент Найти и заменить:

  1. Нажмите Ctrl+H (или Главная → Найти и выделить → Заменить).
  2. В поле Найти введите старую дату, в Заменить на — новую.
  3. Нажмите Заменить всё.

Но здесь есть нюанс: функция ищет точные совпадения текста, поэтому если даты хранятся в разных форматах (например, 31.12.2026 и 31-дек-24), придётся повторять замену для каждого варианта. Также инструмент не распознаёт даты как числовые значения — он работает только с текстом.

Для массовой замены дат с учётом форматов лучше использовать Power Query (доступен в Excel 2016+):

  • 📊 Перейдите на вкладку ДанныеПолучить данные → Из таблицы/диапазона.
  • 🔧 В редакторе Power Query выберите столбец с датами → Преобразовать → Формат → Дата.
  • 🔄 Замените значения через Главная → Заменить значения.

Выделить все ячейки с датами

Проверить текущий формат (дата/текст/число)

Создать резервную копию файла

Использовать "Найти и заменить" или Power Query-->

3. Автоматическое обновление дат формулами

Если даты должны динамически изменяться (например, всегда показывать "сегодня" или "через 30 дней"), используйте функции:

  • 📅 =СЕГОДНЯ() — текущая дата (обновляется при каждом открытии файла).
  • 🔄 =СЕГОДНЯ()+30 — дата через 30 дней от сегодняшнего.
  • 📆 =ДАТА(2026; 12; 31) — фиксированная дата (год; месяц; день).

Для более сложных расчётов подойдут:

  • =ДАТАМЕС(СЕГОДНЯ(); 3) — дата через 3 месяца (только в Excel 2019+).
  • =РАБДЕНЬ(СЕГОДНЯ(); 10) — рабочий день через 10 дней (исключает выходные).

Пример: чтобы в ячейке B2 всегда отображалась дата через 2 недели от текущей, введите:

=СЕГОДНЯ()+14
⚠️ Внимание: Функция СЕГОДНЯ() пересчитывается при каждом открытии файла или изменении данных. Если нужно зафиксировать дату на момент создания, скопируйте ячейку с формулой и вставьте как Значения (ПКМ → Специальная вставка → Значения).
Функция Пример Результат Примечание
СЕГОДНЯ() =СЕГОДНЯ() 15.03.2026 Обновляется автоматически
ДАТА() =ДАТА(2026; 5; 1) 01.05.2026 Фиксированная дата
ДАТАЗНАЧ() =ДАТАЗНАЧ("31.12.2026") 45678 Преобразует текст в дату
ДЕНЬНЕД() =ДЕНЬНЕД(СЕГОДНЯ()) 6 Возвращает день недели (1=воскресенье)

4. Замена частей даты (день, месяц, год)

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

=ДАТА(2026; МЕСЯЦ(A1); ДЕНЬ(A1))

где A1 — ячейка с исходной датой.

Другие полезные функции для работы с частями даты:

  • 📅 =ГОД(A1) — извлекает год.
  • 🔹 =МЕСЯЦ(A1) — извлекает месяц (число от 1 до 12).
  • 📆 =ДЕНЬ(A1) — извлекает день месяца.

Пример: чтобы заменить месяц во всех датах на июнь (6), используйте:

=ДАТА(ГОД(A1); 6; ДЕНЬ(A1))

5. Исправление ошибок формата даты

Одна из самых распространённых проблем — Excel воспринимает дату как текст (например, после импорта из CSV). Чтобы исправить это:

  1. Выделите проблемные ячейки.
  2. Перейдите в Данные → Текст по столбцам.
  3. На шаге 3 мастера выберите Дата и укажите формат (например, ДМГ).

Если даты отображаются как ######, это значит, что ширина столбца недостаточна или ячейка содержит отрицательную дату (например, 30.02.2026). Растяните столбец или проверьте корректность данных.

Для исправления "битых" дат (например, 32.01.2026) используйте формулу с проверкой:

=ЕСЛИОШИБКА(ДАТАЗНАЧ(A1); "Некорректная дата")
⚠️ Внимание: В Excel для Mac и некоторых локализациях разделителем даты по умолчанию является / (например, 12/31/2026), а не .. Это может привести к ошибкам при импорте данных. Проверяйте региональные настройки в Файл → Параметры → Язык.
Почему Excel показывает дату как ########?

Это происходит в трёх случаях:

1. Слишком узкий столбец — растяните его или измените формат ячейки на "Общий".

2. Отрицательная дата — Excel не поддерживает даты до 1900 года (исключение: Excel для Mac, где минимальная дата — 1904 год).

3. Некорректный формат — например, текст "31 февраля". Используйте ДАТАЗНАЧ для проверки.

6. Замена дат с учётом рабочих дней

Для планирования задач часто требуется пропускать выходные и праздники. В Excel есть специальные функции:

  • 📅 =РАБДЕНЬ(нач_дата; дни; [праздники]) — возвращает дату через указанное количество рабочих дней.
  • 🔄 =РАБДЕНЬ.МЕЖД(нач_дата; кон_дата; [праздники]) — считает количество рабочих дней между двумя датами.

Пример: чтобы найти дату через 10 рабочих дней от сегодняшнего, исключив новогодние каникулы (с 1 по 8 января):

=РАБДЕНЬ(СЕГОДНЯ(); 10; {"01.01.2026"; "02.01.2026"; ...; "08.01.2026"})

Для старых версий Excel (до 2010) используйте пользовательскую функцию на VBA:

Код VBA для функции РАБДЕНЬ в Excel 2007–2010

Function РАБДЕНЬ(StartDate As Date, Days As Integer, Optional Holidays As Variant) As Date

Dim i As Integer, TempDate As Date

TempDate = StartDate

For i = 1 To Abs(Days)

TempDate = TempDate + Sgn(Days)

Do While Weekday(TempDate, vbMonday) >= 6 Or Not IsEmpty(Holidays) And IsInArray(TempDate, Holidays)

TempDate = TempDate + Sgn(Days)

Loop

Next i

РАБДЕНЬ = TempDate

End Function

Function IsInArray(DateToCheck As Date, Arr As Variant) As Boolean

Dim i As Integer

For i = LBound(Arr) To UBound(Arr)

If Arr(i) = DateToCheck Then

IsInArray = True

Exit Function

End If

Next i

IsInArray = False

End Function

Чтобы использовать:

1. Нажмите Alt+F11Вставка → Модуль.

2. Вставьте код выше.

3. Вернитесь в Excel и используйте =РАБДЕНЬ(A1; 10) как обычно.

7. Динамические даты в сводных таблицах и фильтрах

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

  1. Добавьте поле с датой в область Фильтры или Строки.
  2. Кликните по стрелке фильтра → Фильтры по дате.
  3. Выберите Настраиваемый фильтр и укажите диапазон (например, "больше чем 01.01.2026").

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

  • 📅 Перейдите в Анализ → Поля, элементы и наборы → Вычисляемое поле.
  • 🔧 Введите формулу, например: =ЕСЛИ(Дата>СЕГОДНЯ(); "Актуально"; "Просрочено").

Чтобы сводная таблица обновляла даты при открытии файла:

  1. Кликните по таблице → Анализ → Параметры → Данные.
  2. Поставьте галочку Обновлять при открытии файла.

Частые вопросы (FAQ)

Как заменить дату в формате "31-дек-24" на "31.12.2026"?

Используйте функцию ДАТАЗНАЧ с подстановкой:

=ЕСЛИОШИБКА(ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "-"; ".") & ".20" & ПРАВСИМВ(A1; 2)); "")

Или преобразуйте через Текст по столбцам (указав формат ДМГ).

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

Это внутренний формат хранения дат в Excel. Чтобы исправить:

  1. Выделите ячейку с результатом.
  2. Нажмите Ctrl+1 → выберите формат Дата.

Или используйте =ТЕКСТ(ДАТАЗНАЧ(A1); "дд.мм.гггг") для приведения к текстовому виду.

Можно ли заменить дату в защищённом листе?

Да, но только если ячейка не заблокирована. Снимите защиту (Рецензирование → Снять защиту листа), измените дату и верните защиту. Для редактирования заблокированных ячеек потребуется пароль.

Как автоматически обновлять дату в шапке отчёта?

Вставьте в ячейку с заголовком формулу =ТЕКСТ(СЕГОДНЯ(); "дд ММММ гггг года"). Чтобы дата не обновлялась при пересчёте, скопируйте ячейку и вставьте как Значения (ПКМ → Специальная вставка → Значения).

Как заменить дату в нескольких файлах Excel одновременно?

Используйте Power Query для объединения файлов:

  1. Создайте новую книгу → Данные → Получить данные → Из файла → Из папки.
  2. Выберите папку с файлами и нажмите Преобразовать данные.
  3. В Power Query замените даты во всех таблицах одновременно.

Или напишите макрос на VBA для пакетной обработки.