Почему в Excel дата отображается с временем и как это исправить
Вы когда-нибудь сталкивались с ситуацией, когда в ячейке Excel вместо чистой даты 15.05.2026 отображается что-то вроде 15.05.2026 00:00:00? Это стандартное поведение программы, которая хранит даты как последовательные числа (где целая часть — дата, а дробная — время). Такое форматирование может мешать при анализе данных, построении отчётов или экспорте в другие системы.
Проблема усложняется тем, что Excel автоматически добавляет время при импорте данных из баз (SQL, 1С), CSV-файлов или при вводе через формулы типа =СЕГОДНЯ(). Даже если визуально время не видно, оно может скрываться в дробной части числа — и проявиться при сортировке или вычислениях. Например, даты 15.05.2026 08:00 и 15.05.2026 18:00 для Excel — это разные значения, хотя на первый взгляд кажутся одинаковыми.
В этой статье мы разберём 5 способов удалить время из даты — от простого форматирования до автоматизации через Power Query и VBA. Вы узнаете, какой метод подходит для вашего случая, как избежать ошибок при преобразовании, и почему иногда лучше оставить исходные данные нетронутыми, создав отдельный столбец с "чистыми" датами.
Способ 1: Форматирование ячеек (визуальное решение)
Самый быстрый, но и самый "обманчивый" способ — изменить формат ячейки. Это не удаляет время физически, а лишь скрывает его отображение. Подходит, если вам нужно быстро привести данные к читаемому виду для отчёта или презентации.
Как это сделать:
- 📌 Выделите ячейки или столбец с датами.
- 🖱️ Нажмите правой кнопкой и выберите
Формат ячеек(или используйте сочетаниеCtrl+1). - 📅 Вкладка
Число→ категорияДата. - 🔍 Выберите формат без времени, например
14.03.2012или14 марта 2012 г..
⚠️ Внимание: При таком подходе время остаётся в данных и может проявиться при сортировке или вычислениях. Например, если отсортировать ячейки с форматом дд.мм.гггг, но с скрытым временем, порядок может оказаться нелогичным.
Способ 2: Функция ЦЕЛОЕ (INT) — простое решение
Функция =ЦЕЛОЕ() (или =INT() в английской версии) отсекает дробную часть числа, оставляя только целую — то есть дату без времени. Это один из самых надёжных методов, так как он физически удаляет время, а не маскирует его.
Пример использования:
=ЦЕЛОЕ(A2)
Где A2 — ячейка с исходной датой и временем.
Преимущества метода:
- ⚡ Мгновенный результат — не требует дополнительных действий.
- 🔄 Работает в динамических таблицах (при изменении исходной даты результат обновляется автоматически).
- 📊 Подходит для дальнейших вычислений (например, разницы между датами).
Недостаток: если исходная дата уже отформатирована как текст (например, после импорта из CSV), функция вернёт ошибку. В этом случае сначала преобразуйте данные в дату с помощью =ДАТАЗНАЧ().
Что делать, если ЦЕЛОЕ не работает?
Если функция =ЦЕЛОЕ() возвращает ошибку, скорее всего, ваша "дата" на самом деле текст. Попробуйте комбинацию:
=ЦЕЛОЕ(ДАТАЗНАЧ(A2))
Или, если формат нестандартный (например, "15-мая-2026 14:30"), используйте =ЗАМЕНИТЬ() для очистки времени вручную.
Способ 3: Функции ДЕНЬ(), МЕСЯЦ(), ГОД() — для полного контроля
Если вам нужно не просто убрать время, но и пересобрать дату в другом формате (например, из 2026-05-15 18:30:00 получить 15 мая), используйте комбинацию функций:
=ДАТА(ГОД(A2); МЕСЯЦ(A2); ДЕНЬ(A2))
Этот метод гарантированно удаляет время, так как создаёт новую дату на основе отдельных компонентов. Полезен, если:
- 🔧 Исходные данные имеют нестандартный формат (например,
ГГГГ-ММ-ДД ЧЧ:ММ:СС). - 📅 Нужно изменить порядок дня/месяца (например, для локализации).
- 🛠️ Требуется дополнительная обработка (например, прибавить 1 день).
Пример с изменением формата:
=ТЕКСТ(ДАТА(ГОД(A2); МЕСЯЦ(A2); ДЕНЬ(A2)); "д мmmм")
Результат: 15 мая.
1. Убедитесь, что ячейка отформатирована как Дата, а не Текст.
2. Проверьте результат на крайних значениях (например, 31.12.2023 23:59:59).
3. Если используете функцию в таблице, протяните формулу на все строки.
4. Для динамических данных используйте Диапазон таблицы вместо фиксированных ссылок.-->
Способ 4: Power Query — для больших массивов данных
Если вам нужно очистить время в тысячах строк или регулярно импортировать данные с временными метками, Power Query (вкладка Данные → Получить данные) станет вашим спасением. Этот инструмент позволяет автоматизировать процесс и обновлять данные в один клик.
Пошаговая инструкция:
- Выделите исходные данные и нажмите
Данные → Из таблицы/диапазона(илиПолучить данные → Из файла, если импортируете). - В открывшемся редакторе Power Query выберите столбец с датой.
- Перейдите на вкладку
Преобразовать→Дата и время→Дата. - Нажмите
Закрыть и загрузить— данные обновятся без времени.
Преимущества Power Query:
| Параметр | Power Query | Формулы Excel |
|---|---|---|
| Скорость обработки | ⚡ Обрабатывает миллионы строк за секунды | ⏳ Замедляется при большом объёме |
| Автоматизация | 🔄 Обновление в один клик | 📝 Требует копирования формул |
| Гибкость | 🛠️ Можно комбинировать с другими преобразованиями | 🔧 Ограничено функциями листа |
| Сохранение исходников | 📌 Не изменяет оригинальные данные | ⚠️ Может потребовать дублирования столбцов |
⚠️ Внимание: Если ваши данные обновляются из внешнего источника (например, SQL-запроса), настройте Параметры запроса так, чтобы Power Query автоматически применял преобразование при каждом обновлении. Иначе время будет возвращаться.
Способ 5: Макросы VBA — для продвинутых пользователей
Если вы работаете с повторяющимися задачами или нужно очистить время в сотнях файлов, напишите простой макрос. Этот метод требует базовых знаний VBA, но экономит часы ручной работы.
Пример кода для удаления времени во всех выделенных ячейках:
Sub RemoveTimeFromDates()
Dim cell As Range
For Each cell In Selection
If IsDate(cell.Value) Then
cell.Value = Int(cell.Value)
cell.NumberFormat = "dd.mm.yyyy"
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с датами на листе и запустите макрос (
F5).
Плюсы макросов:
- 🤖 Полная автоматизация (можно назначить на кнопку или горячие клавиши).
- 📂 Работает с закрытыми книгами (если сохранён в
Персональной книге макросов). - 🔧 Гибкость — можно доработать под специфические форматы.
⚠️ Внимание: Перед запуском макроса обязательно создайте резервную копию данных — ошибка в коде может испортить исходные значения. Также убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью).
Частые ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при очистке времени от дат. Вот самые распространённые ловушки и способы их обойти:
1. Дата преобразуется в число (например, 45342 вместо 15.05.2026)
🔹 Причина: Ячейка отформатирована как Общий или Числовой.
🔹 Решение: Измените формат на Дата (Ctrl+1 → категория Дата).
2. Функция ЦЕЛОЕ возвращает #ЗНАЧ!
🔹 Причина: В ячейке текст, а не дата (например, результат импорта из CSV).
🔹 Решение: Используйте =ДАТАЗНАЧ(A2) или =ЗАМЕНИТЬ(A2; "T"; " ") для предварительной очистки.
3. После удаления времени сортировка работает некорректно
🔹 Причина: В данных остались скрытые символы или невидимые пробелы.
🔹 Решение: Примените =СЖПРОБЕЛЫ(A2) перед преобразованием.
4. Power Query не обновляет данные
🔹 Причина: Не настроено автоматическое обновление при открытии файла.
🔹 Решение: Перейдите в Данные → Свойства запроса и установите флажок Обновлять при открытии файла.
FAQ: Ответы на популярные вопросы
Можно ли убрать время из даты без потери точности?
Да, но важно понимать, что "точности" в контексте дат без времени нет — время всегда округляется до начала дня (00:00:00). Если вам нужна точность до секунды, сохраните исходные данные в отдельном столбце, а для отчётов используйте "чистые" даты.
Почему после удаления времени даты сдвигаются на 1 день?
Это происходит, если исходные данные содержат время после 00:00:00 (например, 15.05.2026 23:59:59). При округлении вниз (=ЦЕЛОЕ()) дата остаётся прежней, но если вы используете округление к ближайшему (=ОКРУГЛ()), может произойти сдвиг. Всегда проверяйте крайние значения!
Как убрать время из даты в Google Таблицах?
В Google Sheets используйте те же принципы:
- Форматирование:
Формат → Числа → Дата. - Функция:
=INT(A2)или=DATE(YEAR(A2); MONTH(A2); DAY(A2)). - Скрипты: Аналог VBA — Google Apps Script.
Отличие от Excel: в Google Таблицах нет Power Query, но есть Импорт диапазона с преобразованиями.
Можно ли вернуть время обратно после его удаления?
Нет, если вы физически удалили время (например, через =ЦЕЛОЕ() или макрос). Если время было скрыто форматированием, его можно вернуть, изменив формат ячейки на Дата и время. Всегда сохраняйте оригинальные данные в отдельном столбце!
Почему при экспорте в PDF время снова появляется?
Это происходит, если при экспорте Excel использует исходные данные, а не отображаемые значения. Чтобы избежать проблемы:
- Скопируйте столбец с "чистыми" датами.
- Вставьте как
Значения(ПКМ → Специальная вставка → Значения). - Экспортируйте уже эти данные.