Как убрать время из даты в Excel: от форматирования до VBA

Почему в 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. Вы узнаете, какой метод подходит для вашего случая, как избежать ошибок при преобразовании, и почему иногда лучше оставить исходные данные нетронутыми, создав отдельный столбец с "чистыми" датами.

📊 Как часто вам приходится очищать время от дат в Excel?
Ежедневно
Несколько раз в неделю
Редко, но методично
Никогда не сталкивался

Способ 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 (вкладка ДанныеПолучить данные) станет вашим спасением. Этот инструмент позволяет автоматизировать процесс и обновлять данные в один клик.

Пошаговая инструкция:

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона (или Получить данные → Из файла, если импортируете).
  2. В открывшемся редакторе Power Query выберите столбец с датой.
  3. Перейдите на вкладку ПреобразоватьДата и времяДата.
  4. Нажмите Закрыть и загрузить — данные обновятся без времени.

Преимущества 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

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки с датами на листе и запустите макрос (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)).
  • Скрипты: Аналог VBAGoogle Apps Script.

Отличие от Excel: в Google Таблицах нет Power Query, но есть Импорт диапазона с преобразованиями.

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

Нет, если вы физически удалили время (например, через =ЦЕЛОЕ() или макрос). Если время было скрыто форматированием, его можно вернуть, изменив формат ячейки на Дата и время. Всегда сохраняйте оригинальные данные в отдельном столбце!

Почему при экспорте в PDF время снова появляется?

Это происходит, если при экспорте Excel использует исходные данные, а не отображаемые значения. Чтобы избежать проблемы:

  1. Скопируйте столбец с "чистыми" датами.
  2. Вставьте как Значения (ПКМ → Специальная вставка → Значения).
  3. Экспортируйте уже эти данные.