В Microsoft Excel даты и время хранятся как числовые значения, где целая часть отвечает за дату, а дробная — за время. Эта особенность часто приводит к тому, что при импорте данных из внешних источников (баз данных, CSV-файлов или корпоративных систем) в ячейках появляются комбинации вида 15.05.2026 14:30:45, хотя пользователю нужна только дата. Проблема усложняется тем, что стандартное форматирование не всегда решает задачу: время может оставаться скрытым, но продолжать влиять на сортировку, фильтрацию и вычисления.
Эта статья охватывает все актуальные способы удаления времени из ячеек — от элементарного изменения формата до автоматизации через Power Query и VBA. Мы разберём, когда достаточно визуального скрытия времени, а когда требуется физическое удаление дробной части числа. Особое внимание уделено нюансам работы с разными версиями Excel (2010–2026) и альтернативами вроде Google Sheets или LibreOffice Calc.
Почему в Excel появляется время вместе с датой?
Корень проблемы кроется в внутреннем представлении дат в Excel. Программа хранит их как количество дней, прошедших с 1 января 1900 года (в Windows) или 1904 года (в Mac). Например:
- 📅
15.05.2026 00:00:00= число45415(целая часть) - ⏰
15.05.2026 12:00:00= число45415.5(дробная часть = 0.5 дня)
При импорте данных из внешних систем (например, 1С, SQL-баз или лог-файлов) Excel автоматически преобразует строки в дату+время, если распознаёт формат. Даже копирование из веб-таблиц или Google Analytics может привести к такому результату. Главная ловушка: время остаётся даже после изменения формата ячейки на Дата — оно просто становится невидимым, но продолжает участвовать в вычислениях.
Способ 1: Изменение формата ячейки (визуальное скрытие)
Самый быстрый, но не всегда достаточный метод — изменить формат отображения. Это не удаляет время физически, а лишь скрывает его:
- Выделите ячейки с датами (например,
A1:A100). - Нажмите
Ctrl+1(или правая кнопка →Формат ячеек). - Вкладка
Число→ категорияДата. - Выберите формат без времени, например
14.03.2012.
⚠️ Внимание: При таком подходе время остаётся в данных. Это проявится при:
- 🔍 Сортировке (ячейки с временем будут группироваться отдельно)
- 📊 Построении сводных таблиц
- 🔄 Использовании в формулах (например,
ДЕНЬНЕД(A1)может дать неверный результат)
Способ 2: Функция ЦЕЛОЕ() — удаление времени формулой
Функция ЦЕЛОЕ() отсекает дробную часть числа, оставляя только целую — то есть дату без времени. Синтаксис:
=ЦЕЛОЕ(A1)
Пример: если в A1 содержится 15.05.2026 14:30 (числовое значение 45415.60417), формула вернёт 45415, что соответствует 15.05.2026 00:00. После этого можно применить формат Дата к результату.
🔹 Плюсы: физически удаляет время, подходит для динамических данных.
⚠️ Минусы: требует дополнительного столбца. Чтобы заменить исходные данные, придётся использовать Специальную вставку (см. способ 4).
Как работает ЦЕЛОЕ() с отрицательными датами?
В Excel даты до 1900 года (отрицательные числа) обрабатываются некорректно. Функция ЦЕЛОЕ() вернёт ошибку #ЧИСЛО! для таких случаев.
Способ 3: Функции ДАТА(), ГОД(), МЕСЯЦ(), ДЕНЬ()
Если нужно не просто убрать время, но и гарантированно получить "чистую" дату (например, для дальнейших расчётов), используйте комбинацию:
=ДАТА(ГОД(A1); МЕСЯЦ(A1); ДЕНЬ(A1))
Эта формула:
- Извлекает год, месяц и день из исходной ячейки.
- Собирает их обратно в дату без времени.
🔹 Когда это необходимо:
- 📅 Работа с историческими датами (до 1900 года)
- 🔄 Объединение данных из разных источников с разными форматами
- 🛡️ Защита от ошибок при импорте (например, если время записано как текст)
| Метод | Формула | Сохраняет время? | Подходит для динамических данных |
|---|---|---|---|
| Форматирование | — | ✅ Да (скрыто) | ✅ Да |
| ЦЕЛОЕ() | =ЦЕЛОЕ(A1) | ❌ Нет | ✅ Да |
| ДАТА()+ГОД/МЕСЯЦ/ДЕНЬ | =ДАТА(ГОД(A1);...) | ❌ Нет | ✅ Да |
| Текст в дату | =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) | ❌ Нет | ⚠️ Только если формат стабилен |
Способ 4: Замена данных через "Специальную вставку"
Если вы использовали формулу (например, ЦЕЛОЕ()) и хотите заменить исходные данные результатами, выполните:
- Введите формулу в соседнем столбце (например,
=ЦЕЛОЕ(A1)вB1). - Скопируйте ячейки с формулами (
Ctrl+C). - Выделите исходный диапазон (
A1:A100). - Правая кнопка →
Специальная вставка→Значения→ОК.
⚠️ Внимание: После этой операции исходные данные с временем будут безвозвратно удалены. Если потребуется откат, используйте Ctrl+Z немедленно или сохраните резервную копию файла.
☑️ Проверка перед заменой данных
Способ 5: Power Query — очистка при импорте
Если данные импортируются из внешнего источника (CSV, SQL, XML), удобнее удалить время на этапе загрузки через Power Query:
- Перейдите на вкладку
Данные→Получить данные→ выберите источник. - В окне Power Query выделите столбец с датами.
- На вкладке
ПреобразованиевыберитеДата/время→Дата. - Нажмите
Закрыть и загрузить.
🔹 Преимущества:
- 🔄 Автоматически применяется при каждом обновлении данных
- 📂 Не требует формул в самой таблице
- 🛠️ Можно комбинировать с другими преобразованиями (замена текста, фильтрация)
⚠️ Ограничение: В Excel 2010–2013 Power Query доступен как надстройка Power BI, в 2016+ — встроен по умолчанию.
Способ 6: VBA-макрос для массовой обработки
Если нужно очистить тысячи строк или автоматизировать процесс, используйте макрос:
Sub УдалитьВремя()
Dim rng As Range
For Each rng In Selection
If IsDate(rng.Value) Then
rng.Value = Int(rng.Value)
rng.NumberFormat = "dd.mm.yyyy"
End If
Next rng
End Sub
🔹 Как применять:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с датами и запустите макрос (
F5).
⚠️ Внимание: Макрос безвозвратно заменяет данные. Перед запуском:
- 💾 Сохраните файл с расширением
.xlsm(включает поддержку макросов) - 🔒 Убедитесь, что в выделенном диапазоне нет важных формул
Частые ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при очистке дат. Рассмотрим типичные сценарии:
🔴 Ошибка #1: Дата превращается в ###### после удаления времени.
⚠️ Внимание: Это означает, что ширина столбца недостаточна для отображения нового формата. Растяните столбец или примените формат Краткий формат даты.
🔴 Ошибка #2: Формула ЦЕЛОЕ() возвращает #ЗНАЧ!.
🔹 Причина: В ячейке не число, а текст (например, "15.05.2026 14:30" как строка). Решение: используйте =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)).
🔴 Ошибка #3: После специальной вставки даты сбиваются на 4 года.
🔹 Причина: В настройках Excel включён параметр Система дат 1904 (Mac). Чтобы исправить:
- Перейдите в
Файл → Параметры → Дополнительно. - Снимите флажок
Использовать систему дат 1904. - Перезагрузите Excel.
FAQ: Ответы на частые вопросы
Можно ли удалить время без формул, прямо в исходных данных?
Да, но только через Power Query (способ 5) или VBA (способ 6). Обычное форматирование (способ 1) лишь скрывает время, а не удаляет его.
Почему после применения ЦЕЛОЕ() дата сдвигается на день назад?
Это происходит, если в ячейке было время 00:00:00, а Excel интерпретировал его как конец предыдущего дня. Проверьте исходные данные: возможно, там записано 14.05.2026 23:59:59, которое после ЦЕЛОЕ() становится 14.05.2026 00:00:00, но отображается как 13.05.2026 из-за временной зоны.
Как удалить время в Google Sheets?
В Google Таблицах используйте ту же функцию =ЦЕЛОЕ(A1) или =ДАТА(ГОД(A1); МЕСЯЦ(A1); ДЕНЬ(A1)). Альтернатива — =INT(A1) (аналог ЦЕЛОЕ).
Можно ли вернуть время после его удаления?
Нет, если вы применили Специальную вставку (способ 4) или макрос (способ 6). Единственный способ — отменить действие (Ctrl+Z) или восстановить данные из резервной копии.
Почему после импорта из CSV дата отображается как число (например, 45415)?
Excel распознал столбец как числовой, а не как дату. Решение: перед импортом в Power Query измените тип данных столбца на Дата/время или используйте формулу =ДАТАЗНАЧ("15.05.2026") для ручной конвертации.