Введение: почему формат дат в Excel часто вызывает проблемы
Работа с датами в Microsoft Excel — одна из самых распространённых задач, с которыми сталкиваются пользователи. Казалось бы, что может быть проще, чем ввести дату в ячейку? Однако на практике многие сталкиваются с тем, что программа автоматически преобразует введённые данные в неожиданный формат, а иногда и вовсе воспринимает их как текст. Например, вместо 01.01.2026 вы видите 45292 или 01-янв, а при попытке отсортировать таблицу даты оказываются в хаотичном порядке.
Проблема усугубляется тем, что Excel хранит даты как числовые значения (количество дней с 1 января 1900 года), а отображает их в зависимости от региональных настроек и формата ячейки. Это означает, что одна и та же дата может выглядеть по-разному на компьютерах с различными языковыми параметрами. Например, 05/06/2026 в американском формате означает 5 июня, а в европейском — 6 мая. Такие нюансы часто приводят к ошибкам в отчётах, графиках и расчётах.
В этой статье мы разберём все возможные способы изменения дат в Excel — от базового ручного редактирования до автоматизированных методов с использованием формул и Power Query. Вы узнаете, как:
- 🔄 Преобразовать текст в дату (например, "2026-01-15" → 15.01.2026)
- 📅 Изменить формат отображения даты (длинный, короткий, с временем)
- 🔢 Исправить ошибки типа
####или некорректную сортировку - 📊 Автоматически обновлять даты с помощью формул
- 🔄 Массово заменить даты в большом диапазоне
Способ 1: ручное изменение формата даты через меню Excel
Самый простой способ изменить внешний вид даты — воспользоваться встроенными инструментами форматирования. Это не меняет само значение в ячейке, а только способ его отображения. Например, дата 45292 (что соответствует 1 января 2026 года) может быть показана как 01.01.2026, 1 января 2026 г. или даже понедельник, 1 янв.
Чтобы изменить формат:
- Выделите ячейки с датами (или весь столбец, нажав на его заголовок).
- Нажмите правой кнопкой мыши и выберите
Формат ячеек...(или используйте сочетание клавишCtrl+1). - В открывшемся окне перейдите на вкладку
Число→Дата. - Выберите нужный формат из списка (например,
14.03.2012или14 марта 2012 г.). - Нажмите
ОК, чтобы применить изменения.
Важно: Если в списке нет подходящего формата, вы можете создать свой. Для этого выберите (все форматы) и введите шаблон вручную. Например:
- 📌
дд.мм.гггг→01.01.2026 - 📌
д мmmм гггг→1 января 2026 - 📌
дддд, д мmmм→понедельник, 1 января
⚠️ Внимание: Если после изменения формата в ячейке отображаются символы ####, это означает, что столбец слишком узкий для выбранного формата. Растяните столбец или выберите более компактный формат (например, без указания дня недели).
Способ 2: преобразование текста в дату (если Excel не распознаёт формат)
Частая проблема — Excel воспринимает даты как текст (например, после импорта из CSV или копирования с веб-сайта). В этом случае даты не сортируются правильно, и к ним нельзя применить функции вроде ДАТАМЕС() или РАЗНДАТ(). Распознать текстовые даты можно по выравниванию: по умолчанию текст выравнивается по левому краю, а даты — по правому.
Чтобы преобразовать текст в дату:
- Выделите столбец с текстовыми датами.
- Перейдите на вкладку
Данные→Текст по столбцам. - В мастере импорта выберите
С разделителями→Далее. - На втором шаге снимите все галочки в разделе
Разделителии нажмитеДалее. - Выделите столбец с датами в окне предварительного просмотра и выберите формат
Дата: ДМГ(или другой подходящий). - Нажмите
Готово.
Альтернативный метод — использовать функцию ДАТАЗНАЧ() (или DATEVALUE() в английской версии). Например, если в ячейке A1 содержится текст "15.01.2026", формула =ДАТАЗНАЧ(A1) преобразует его в дату. Для массового преобразования:
- Введите формулу в соседнем столбце (например,
=ДАТАЗНАЧ(B2)). - Протяните формулу вниз до конца диапазона.
- Скопируйте полученные даты (
Ctrl+C) и вставьте их поверх исходных данных с помощьюСпециальная вставка → Значения.
Текст в ячейке выровнен по правому краю
При двойном клике на ячейку в строке формул отображается дата, а не текст
Функция =ДАТА() работает с ячейкой (например, =ГОД(A1) возвращает год)
Сортировка по столбцу работает корректно-->
⚠️ Внимание: ФункцияДАТАЗНАЧ()не работает с форматами дат, содержащими время (например,"15.01.2026 14:30"). В этом случае используйте комбинациюДАТАЗНАЧ() + ВРЕМЗНАЧ()или разделите дату и время на два столбца.
Способ 3: массовое изменение дат с помощью функции ЗАМЕНИТЬ и НАЙТИ
Если даты в таблице имеют нестандартный формат (например, 2026/01/15 вместо 15.01.2026), их можно привести к единому виду с помощью формул. Предположим, у вас в столбце A даты в формате ГГГГ-ММ-ДД, а нужно ДД.ММ.ГГГГ. Для этого:
- В ячейке
B1введите формулу:=ДАТА(ЛЕВСИМВ(A1;4); ПСТР(A1;6;2); ПСТР(A1;9;2))Эта формула извлекает год (первые 4 символа), месяц (символы 6-7) и день (символы 9-10), затем собирает их в стандартную дату.
- Протяните формулу на весь столбец.
- Скопируйте результаты и вставьте их поверх исходных данных как значения.
Для более сложных преобразований (например, замены разделителей) используйте функцию ПОДСТАВИТЬ:
- 🔄 Замена
/на.:=ПОДСТАВИТЬ(A1; "/"; ".") - 🔄 Удаление лишних символов (например,
"Дата: 15.01.2026"→15.01.2026):=ПСТР(A1; НАЙТИ(" "; A1)+1; 10)
Критичный нюанс: если в исходных данных встречаются даты с однозначным днём или месяцем (например, 5.1.2026), Excel может интерпретировать их как текст. Чтобы избежать ошибок, предварительно добавьте ведущие нули с помощью функции ТЕКСТ():
=ТЕКСТ(ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "."; "/")); "дд.мм.гггг")
Способ 4: автоматическое обновление дат с помощью формул
Иногда требуется, чтобы даты в таблице обновлялись автоматически — например, чтобы отображать текущую дату или рассчитывать сроки. Для этого используйте динамические функции:
| Задача | Формула | Пример результата |
|---|---|---|
| Текущая дата | =СЕГОДНЯ() |
15.05.2026 (обновляется ежедневно) |
| Текущая дата + время | =ТДАТА() |
15.05.2026 14:30 |
| Дата через 30 дней | =СЕГОДНЯ()+30 |
14.06.2026 |
| Последний день месяца | =ДАТАМЕС(СЕГОДНЯ();1)-1 |
31.05.2026 |
| Разница в днях между датами | =A2-A1 (где A1 и A2 — даты) |
45 (дней) |
Для работы с рабочими днями (исключая выходные) используйте функцию РАБДЕНЬ():
=РАБДЕНЬ(СЕГОДНЯ(); 10)
Эта формула вернёт дату через 10 рабочих дней (без учёта суббот и воскресений).
⚠️ Внимание: ФункцииСЕГОДНЯ()иТДАТА()пересчитываются при каждом открытии файла или изменении данных. Если вам нужно зафиксировать текущую дату (например, для отчёта), скопируйте результат формулы и вставьте как значение (Ctrl+Shift+V → Значения).
Способ 5: исправление ошибок сортировки и отображения дат
Если даты в таблице отсортированы хаотично или отображаются как числа (например, 45292), проблема кроется в одном из трёх факторов:
- Неправильный формат ячеек — Excel воспринимает данные как текст или общее число.
- Смешанные форматы — в одном столбце есть и даты, и текст (например, ячейки с ошибками
#ЗНАЧ!). - Региональные настройки — Excel использует формат даты, отличный от ожидаемого (например,
ММ/ДД/ГГГГвместоДД.ММ.ГГГГ).
Чтобы исправить сортировку:
- Убедитесь, что все ячейки в столбце имеют формат
Дата(см. Способ 1). - Проверьте столбец на наличие скрытых символов или пробелов. Для этого используйте функцию
ПЕЧСИМВ():=ПЕЧСИМВ(A1)=ДЛСТР(A1)Если результат
ЛОЖЬ, в ячейке есть непечатаемые символы. Удалите их с помощьюСЖПРОБЕЛЫ(). - Если даты отображаются как числа (например,
45292), примените к ним форматДата. Число45292соответствует 1 января 2026 года.
Для изменения региональных настроек (если Excel неправильно интерпретирует формат ДД/ММ/ГГГГ):
- Перейдите в
Файл → Параметры → Дополнительно. - Прокрутите до раздела
Параметры редактирования. - Снимите галочку с
Автоматически вставлять десятичную запятую. - Нажмите
Параметры автозамены...и на вкладкеЛокализованные параметрывыберите нужный формат даты.
Почему Excel показывает даты как ######?
Это означает, что ширина столбца недостаточна для отображения даты в выбранном формате. Растяните столбец или выберите более компактный формат (например, дд.мм.гг вместо дд мmmм гггг). Если проблема сохраняется, проверьте, не установлен ли в ячейке текстовый формат вместо даты.
Способ 6: продвинутые методы (Power Query и VBA)
Для обработки больших объёмов данных или сложных преобразований удобно использовать Power Query (доступен в Excel 2016 и новее). Например, если у вас файл с датами в формате Jan 15, 2026, их можно стандартизировать за несколько кликов:
- Выделите диапазон с датами и перейдите на вкладку
Данные→Из таблицы/диапазона(илиПолучить данные → Из таблицы/диапазона). - В открывшемся редакторе Power Query выделите столбец с датами.
- На вкладке
ПреобразоватьвыберитеТип данных → Дата(илиДата/время). - Если Excel не распознал формат, нажмите
Преобразовать → Формат даты → Выбрать формати укажите шаблон (например,MMM dd, yyyyдляJan 15, 2026). - Нажмите
Закрыть и загрузить, чтобы применить изменения.
Для автоматизации повторяющихся задач (например, ежемесячного обновления дат в отчётах) можно использовать VBA-макрос. Пример макроса для преобразования текста в дату:
Sub ConvertTextToDate()
Dim rng As Range
For Each rng In Selection
If IsDate(rng.Value) Then
rng.Value = CDate(rng.Value)
rng.NumberFormat = "dd.mm.yyyy"
End If
Next rng
End Sub
Чтобы запустить макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с датами и запустите макрос (
F5).
⚠️ Внимание: Перед запуском макросов убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов → Включить все макросы). Не запускайте макросы из ненадёжных источников!
FAQ: ответы на частые вопросы о датах в Excel
Как в Excel изменить дату с американского формата (ММ/ДД/ГГГГ) на европейский (ДД.ММ.ГГГГ)?
Если даты уже введены в американском формате (например, 05/06/2026 как 5 июня), используйте функцию ДАТА():
=ДАТА(ПРАВСИМВ(A1;4); ЛЕВСИМВ(A1; НАЙТИ("/"; A1)-1); ПСТР(A1; НАЙТИ("/"; A1)+1; 2))
Для массового преобразования скопируйте формулу в соседний столбец, затем замените исходные данные на результаты (через Специальная вставка → Значения).
Почему при копировании дат из Excel в Word они отображаются как числа?
Это происходит потому, что Excel хранит даты как числа, а Word не распознаёт формат. Чтобы скопировать даты корректно:
- В Excel выделите ячейки с датами и скопируйте их (
Ctrl+C). - В Word выберите
Специальная вставка → Текст(илиСохранить исходное форматирование). - Если даты всё равно отображаются как числа, предварительно преобразуйте их в текст в Excel с помощью функции
=ТЕКСТ(A1; "дд.мм.гггг").
Можно ли в Excel отображать даты на русском языке (например, "15 января")?
Да, для этого используйте пользовательский формат:
- Выделите ячейки с датами и нажмите
Ctrl+1. - В разделе
Число → (все форматы)введите шаблон:д мmmм гггг. - Нажмите
ОК.
Результат: 15 января 2026 г.. Для сокращённого варианта используйте д мmm гг (15 янв 24).
Как в Excel посчитать количество дней между двумя датами?
Используйте простую формулу вычитания: =A2-A1, где A1 и A2 — ячейки с датами. Для исключения выходных применяйте РАБДЕНЬ():
=РАБДЕНЬ(A1; A2-1)
Чтобы получить разницу в годах, месяцах или днях, используйте РАЗНДАТ():
=РАЗНДАТ(A1; A2; "y") 'разница в годах
=РАЗНДАТ(A1; A2; "m") 'разница в месяцах
=РАЗНДАТ(A1; A2; "d") 'разница в днях
Почему функция СЕГОДНЯ() не обновляется автоматически?
Вероятные причины:
- 🔄 В настройках Excel установлен ручной режим вычислений (
Формулы → Вычисление → Вручную). ВернитеАвтоматически. - 🔄 Файл открыт в режиме просмотра (например, из вложения письма). Сохраните файл на диск и откройте его заново.
- 🔄 Формула введена как текст (проверьте, нет ли перед
=апострофа').