Почему Excel неправильно отображает даты и как это исправить
Вы когда-нибудь сталкивались с ситуацией, когда Excel упорно показывает дату в формате мм/дд/гггг, хотя вам нужен привычный дд.мм.гггг? Или пытались ввести дату, а программа восприняла её как текст? Это типичные проблемы, с которыми сталкиваются 8 из 10 пользователей при работе с датами в электронных таблицах.
Дело в том, что Excel хранит даты как числовые значения (количество дней с 1 января 1900 года), а отображение зависит от применённого формата ячейки. По умолчанию программа использует региональные настройки вашей системы, что часто приводит к путанице. Например, 05.06.2026 в американском формате станет June 5, 2026, а в европейском останется 5 июня 2026.
В этой статье мы разберём все возможные способы изменения образца даты — от базовых настроек до продвинутых приёмов с формулами. Вы узнаете, как:
- 🔄 Быстро поменять формат через ленту инструментов
- 🛠️ Создать пользовательский шаблон даты
- 🌍 Настроить региональные параметры для корректного отображения
- 📊 Преобразовать текстовые даты в правильный формат
Способ 1: Изменение формата через ленту инструментов
Самый простой метод — использовать встроенные форматы дат. Он подходит, если вам не нужны экзотические шаблоны, а достаточно стандартных вариантов.
Инструкция:
- Выделите ячейки с датами, которые нужно изменить.
- Перейдите на вкладку
Главнаяв ленте инструментов. - В группе
Числонажмите на выпадающий список формата (обычно там отображаетсяОбщийили текущий формат). - Выберите пункт
Краткая датаилиДлинный формат даты.
Обратите внимание: доступные варианты зависят от языка и региональных параметров вашей системы. Если нужного формата нет в списке, переходите к следующему способу.
Способ 2: Пользовательский формат даты
Когда стандартных вариантов недостаточно, создайте собственный шаблон. Например, вам может понадобиться:
- 📅 Дата с названием дня недели (
понедельник, 10 июня 2026 г.) - 🕒 Дата и время в одной ячейке (
10.06.2026 14:30) - 📊 Дата без разделителей (
10062026)
Для создания пользовательского формата:
- Выделите ячейки и нажмите
Ctrl+1(или правая кнопка →Формат ячеек). - Перейдите на вкладку
Число→Все форматы. - В поле
Типвведите свой шаблон, используя коды форматирования.
Критическая особенность: Excel различает коды для месяцев (М) и минут (м). Ошибка в регистре приведёт к некорректному отображению!
Примеры кодов для пользовательских форматов
д - день без ведущего нуля (5)
дд - день с ведущим нулем (05)
ммм - сокращённое название месяца (июн)
мммм - полное название месяца (июнь)
гг - двухзначный год (24)
гггг - четырёхзначный год (2026)
Способ 3: Использование функции ТЕКСТ()
Формула =ТЕКСТ() позволяет преобразовать дату в текстовый формат с заданным шаблоном. Это полезно, когда нужно:
- 📋 Отобразить дату в отчёте в нестандартном виде
- 🔗 Использовать дату как часть текстовой строки
- 📊 Создать динамические заголовки с текущей датой
Синтаксис:
=ТЕКСТ(значение; "формат")
Примеры:
| Формула | Результат (для 10.06.2026) |
|---|---|
=ТЕКСТ(A1; "дд.мм.гггг") | 10.06.2026 |
=ТЕКСТ(A1; "д мммм гггг года") | 10 июня 2026 года |
=ТЕКСТ(A1; "дддд, д ммм") | понедельник, 10 июн |
=ТЕКСТ(СЕГОДНЯ(); "д.мм.гг") | 10.06.24 |
✔️ Ячейка содержит реальную дату (не текст)
✔️ Формат соответствует локали (русские названия месяцев)
✔️ Учтён регистр кодов (М ≠ м)
✔️ Для динамических дат используется СЕГОДНЯ() или ТДАТА()
-->
Способ 4: Настройка региональных параметров
Если Excel упорно показывает даты в американском формате (мм/дд/гггг), проблема кроется в региональных настройках. Это особенно актуально при работе с файлами, созданными на компьютерах с другими языковыми параметрами.
Чтобы изменить региональные настройки:
- Перейдите в
Файл → Параметры → Дополнительно. - Прокрутите до раздела
Параметры редактирования. - Снимите флажок
Использовать системные разделители. - Укажите нужные разделители даты и времени (например,
.вместо/).
Важно: Эти настройки применяются ко всему документу. Если вам нужно изменить формат только для конкретных ячеек, используйте методы из предыдущих разделов.
Способ 5: Преобразование текстовых дат в формат даты
Частая проблема: даты импортируются как текст (например, из CSV-файлов) и не распознаются как даты. В результате невозможно применить форматирование или использовать их в вычислениях.
Решения:
- Функция ДАТАЗНАЧ():
=ДАТАЗНАЧ(A1)Преобразует текст в формате
дд.мм.ггггв дату. Для других форматов используйте комбинацию ЛЕВСИМВ(), ПСТР() и ПРАВСИМВ(). - Текст по столбцам:
- Выделите столбец с текстовыми датами.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями→Далее→Готово.
- Найти и заменить:
Замените разделители на стандартные (например, замените
-на.), затем примените формат даты.
Способ 6: Динамические даты с функциями СЕГОДНЯ() и ТДАТА()
Для отображения текущей даты или времени используйте:
- 📅
=СЕГОДНЯ()— возвращает текущую дату (обновляется при пересчёте) - 🕐
=ТДАТА()— возвращает текущие дату и время
Примеры использования:
=ТЕКСТ(СЕГОДНЯ(); "дд мммм гггг") → "10 июня 2026"
=ТЕКСТ(ТДАТА(); "чч:мм, д ммм") → "14:30, 10 июн"
Обратите внимание: эти функции обновляются при каждом открытии файла или пересчёте. Если нужна фиксированная дата, введите её вручную или скопируйте значение (Специальная вставка → Значения).
Способ 7: Продвинутые приёмы с Power Query
Для сложных преобразований дат (например, в больших наборах данных) удобно использовать Power Query:
- Выделите данные и перейдите на вкладку
Данные→Из таблицы/диапазона. - В редакторе Power Query выберите столбец с датами.
- На вкладке
Преобразоватьиспользуйте:- 📅
Тип данных → Дата - 🔄
Формат → Локаль(выберите нужную страну) - 📊
Столбец по примерудля нестандартных форматов
- 📅
Закрыть и загрузить.Это особенно полезно при работе с:
- 📄 Импортированными данными из CSV/JSON
- 📊 Датами в разных форматах в одном столбце
- 🔄 Периодическими отчётами с изменяющейся структурой
Справочник кодов форматирования дат
Для создания пользовательских форматов используйте эти коды:
| Код | Значение | Пример (для 10.06.2026) |
|---|---|---|
д | День без ведущего нуля | 10 |
дд | День с ведущим нулем | 10 |
ддд | Сокращённое название дня (пн) | пн |
дддд | Полное название дня (понедельник) | понедельник |
м | Месяц без ведущего нуля | 6 |
мм | Месяц с ведущим нулем | 06 |
ммм | Сокращённое название месяца (июн) | июн |
мммм | Полное название месяца (июнь) | июнь |
г | Год без века (0-99) | 24 |
гг | Год с веком (00-99) | 24 |
гггг | Полный год (1900-9999) | 2026 |
Для комбинирования используйте текстовые разделители в кавычках:
"д мммм гггг года" → 10 июня 2026 года
"чч:мм, дд.мм.гггг" → 14:30, 10.06.2026
Частые ошибки и как их избежать
⚠️ Внимание: Если после изменения формата даты отображаются как45467или45467,125, это значит, что Excel интерпретирует их как числа. Примените формат даты или используйте функцию=ДАТАЗНАЧ().
Топ-5 ошибок при работе с датами:
- Путаница с разделителями: Ввод
05-06-2026в американской локали станет 5 июня, а в европейской — 6 мая. Всегда проверяйте региональные настройки. - Текст вместо даты: Если ячейка содержит апостроф (
'10.06.2026), Excel воспринимает её как текст. Удалите апостроф или используйтеДАТАЗНАЧ(). - Неправильный регистр в формулах:
=ТЕКСТ(A1; "мм.дд.гггг")отобразит минуты вместо месяцев. Всегда используйте заглавнуюМдля месяцев. - Переполнение даты: Excel не поддерживает даты до 1900 года. Для исторических данных используйте текстовый формат.
- Копирование форматов: При копировании ячеек с датами (
Ctrl+C → Ctrl+V) иногда копируется только значение, а не формат. ИспользуйтеСпециальная вставка → Форматы.
⚠️ Внимание: При экспорте данных в CSV все форматирование дат будет утеряно! Преобразуйте даты в текстовый формат с нужным шаблоном перед экспортом, например: =ТЕКСТ(A1; "дд.мм.гггг").
FAQ: Ответы на частые вопросы
Почему Excel меняет мои даты при вводе? Например, ввожу 10.06.2026, а получаю 6 октября 2026.
Это происходит из-за конфликта региональных настроек. Ваш компьютер использует формат мм/дд/гггг, поэтому 10.06.2026 интерпретируется как 10-й месяц (октябрь) и 6-е число. Решения:
- Используйте разделитель, соответствующий вашей локали (например,
10/06/2026для американского формата). - Вводите даты через функцию
=ДАТА(2026; 6; 10). - Измените региональные настройки Excel (см. Способ 4).
Как сделать так, чтобы дата автоматически обновлялась каждый день?
Используйте функцию =СЕГОДНЯ() для текущей даты или =ТДАТА() для даты и времени. Эти функции пересчитываются при каждом открытии файла или изменении данных. Чтобы обновление происходило чаще:
- Перейдите в
Формулы → Вычисления → Параметры вычислений. - Выберите
Автоматически(обновление при каждом изменении) илиАвтоматически, кроме таблиц данных.
Для принудительного пересчёта нажмите F9.
Можно ли в Excel отобразить дату прописью (например, "десятое июня две тысячи двадцать четвёртого года")?
Стандартными средствами — нет, но есть обходные пути:
- Функция пользователя (VBA):
Function DateInWords(d As Date) As String' Код для преобразования даты в текст
End Function
Требует навыков программирования на VBA.
- Комбинация функций:
=ВЫБОР(ДЕНЬ(A1);"первое", "второе", ..., "тридцатое", "тридцать первое")
& " " &
ВЫБОР(МЕСЯЦ(A1);
"января", "февраля", ..., "декабря")
& " " &
ТЕКСТ(ГОД(A1); "0") & " года"
Длинно, но работает без VBA.
- Overengineering: Создайте таблицу соответствий чисел и их текстовых эквивалентов, затем используйте
ПОИСКПОЗ()иИНДЕКС().
Для большинства задач достаточно формата "д мммм гггг" (например, 10 июня 2026).
Как в Excel посчитать разницу между датами в годах, месяцах и днях?
Используйте комбинацию функций:
=РАЗНДАТ(нач_дата; кон_дата; "y") → полных лет
=РАЗНДАТ(нач_дата; кон_дата; "ym") → месяцев (без учёта лет)
=РАЗНДАТ(нач_дата; кон_дата; "md") → дней (без учёта месяцев и лет)
Для вывода в формате "X лет Y месяцев Z дней":
=РАЗНДАТ(A1;A2;"y") & " лет " &
РАЗНДАТ(A1;A2;"ym") & " мес. " &
РАЗНДАТ(A1;A2;"md") & " дней"
Обратите внимание: функция РАЗНДАТ() доступна только в русской версии Excel. В английской версии используйте DATEDIF().
Почему при вычитании дат получается странное число (например, 45467)?
Это нормальное поведение! Excel хранит даты как числа, где 1 соответствует 1 января 1900 года. Поэтому разница между 10.06.2026 и 01.01.1900 равна 45467 дням. Чтобы получить разницу в днях между двумя произвольными датами:
- Убедитесь, что обе ячейки имеют формат даты.
- Просто вычтите одну дату из другой:
=B1-A1. - Примените к результату формат
ОбщийилиЧисловой.
Если вам нужны годы или месяцы, используйте функцию РАЗНДАТ() (см. предыдущий вопрос).