Если в ваших данных Excel даты отображаются с ненужным временем (например, 15.05.2026 14:30:22 вместо 15.05.2026), проблема не только в визуальном беспорядке. Такие ячейки могут ломать сортировку, сводные таблицы и формулы типа ДЕНЬНЕД(), которые ожидают чистую дату. В 90% случаев время «прилипает» к дате при импорте из баз данных, CSV-файлов или систем аналитики (1С, Google Analytics, CRM). Решение зависит от того, нужно ли сохранить исходные данные или достаточно изменить отображение.
В этой статье — проверенные методы для всех версий Excel (2010–2023, включая Office 365), от простого форматирования до автоматизации через Power Query и VBA. Особый акцент сделан на массовую обработку: как применить изменения ко всем строкам столбца за 1 клик, не редактируя каждую ячейку вручную. Если вам требуется не просто скрыть время, а полностью удалить его из внутреннего представления данных (например, для корректной работы формул), пропустите раздел про форматирование и переходите сразу к функциям или Power Query.
Почему Excel сохраняет время вместе с датой (и когда это критично)
Excel хранит даты и время как числа: целая часть — количество дней с 1 января 1900 года, дробная — доля суток (время). Например, 15.05.2026 12:00 для программы — это число 45425.5 (45425 дней + 0.5 дня = полдень). Когда вы видите 15.05.2026 00:00:00, на самом деле время равно нулю, но Excel отображает его по умолчанию.
Проблемы возникают в трех случаях:
- 📊 Сводные таблицы: группировка по датам работает некорректно, если в данных есть время (например, вместо одного дня появляются сотни строк с уникальными метками времени).
- 🔍 Функции даты:
ДЕНЬНЕД(),МЕСЯЦ()илиГОД()могут давать сбой, если ячейка содержит не только дату. - 📥 Экспорт данных: при выгрузке в другие системы (например, в SQL или JSON) время может искажать результаты.
Если вы просто хотите скрыть время при печати или просмотре, достаточно изменить формат ячеек. Если же данные будут использоваться в формулах или аналитике, время нужно физически удалить — об этом в следующих разделах.
Способ 1: Форматирование ячеек (быстро, но не удаляет время)
Самый простой метод — изменить формат отображения, оставив исходные данные нетронутыми. Это подходит, если время не мешает расчетам, но портит внешний вид таблицы.
- Выделите столбец с датами (например,
A1:A1000). - Нажмите
Ctrl+1(или правая кнопка мыши → Формат ячеек). - Вкладка Число → категория Дата.
- Выберите формат без времени, например
14.03.2012или14 марта 2012 г..
⚠️ Внимание: этот способ только маскирует время. Если вы скопируете ячейку в блокнот или используете её в формуле, время останется. Например, =A1=ДАТА(2026;5;15) вернёт ЛОЖЬ, потому что в A1 сохранено 15.05.2026 00:00:00.
| Исходное значение | Формат дд.мм.гггг | Формат дд мммм гггг г. | Реальное значение (в формулах) |
|---|---|---|---|
15.05.2026 08:30:00 | 15.05.2026 | 15 мая 2026 г. | 15.05.2026 08:30:00 |
15.05.2026 00:00:00 | 15.05.2026 | 15 мая 2026 г. | 15.05.2026 00:00:00 |
15.05.2026 23:59:59 | 15.05.2026 | 15 мая 2026 г. | 15.05.2026 23:59:59 |
Способ 2: Функция ЦЕЛОЕ() — удаление времени без потери данных
Функция ЦЕЛОЕ() отсекает дробную часть числа, оставляя только целую — то есть убирает время, сохраняя дату. Этот метод подходит для массовой обработки и не требует VBA.
Формула для ячейки B1 (если исходные данные в A1):
=ЦЕЛОЕ(A1)
Чтобы применить ко всему столбцу:
- Введите формулу в первую ячейку (например,
B1). - Дважды кликните на маркер автозаполнения (маленький квадратик в правом нижнем углу ячейки) — формула скопируется до последней заполненной строки в столбце
A. - Скопируйте значения столбца
B(Ctrl+C) и вставьте их поверх столбцаAкак значения (правая кнопка → Специальная вставка → Значения).
⚠️ Внимание: если в исходных данных есть пустые ячейки или текст, ЦЕЛОЕ() вернёт ошибку #ЗНАЧ!. Чтобы избежать этого, используйте комбинацию с ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(ЦЕЛОЕ(A1); A1)
☑️ Подготовка данных перед использованием ЦЕЛОЕ()
Способ 3: Функции ДАТА(), ГОД(), МЕСЯЦ(), ДЕНЬ() — для сложных случаев
Если функция ЦЕЛОЕ() не подходит (например, из-за ошибок в данных), можно вручную извлечь год, месяц и день, а затем собрать их обратно в дату. Это гарантированно удаляет время, даже если исходные данные повреждены.
Формула для ячейки B1:
=ДАТА(ГОД(A1); МЕСЯЦ(A1); ДЕНЬ(A1))
Преимущества метода:
- 🛡️ Работает даже если в ячейке текст с датой (например,
"15.05.2026 14:30"как строка). - 🔄 Сохраняет корректную дату даже при ошибках округления (в отличие от
ЦЕЛОЕ()). - 📅 Позволяет модифицировать дату на лету (например, прибавить 1 день:
=ДАТА(ГОД(A1); МЕСЯЦ(A1); ДЕНЬ(A1)+1)).
Недостаток: формула дольше считается на больших массивах данных (100 000+ строк). В этом случае лучше использовать Power Query (способ 4).
Что делать, если функция ДАТА() возвращает ошибку #ЗНАЧ!?
Если исходная ячейка содержит текст (например, "15 мая 2026 г."), сначала преобразуйте её в дату с помощью =ДАТАЗНАЧ(A1). Если ошибка остаётся, проверьте региональные настройки Excel: в русскоязычной версии разделителем даты должен быть точка (.), а не слеш (/).
Способ 4: Power Query — обработка миллионов строк без формул
Если у вас тысячи строк или данные регулярно обновляются, Power Query (в Excel 2016+ и Office 365) — оптимальное решение. Этот инструмент позволяет однократно настроить правило и применять его при каждом импорте данных.
Пошаговая инструкция:
- Выделите исходные данные → вкладка Данные → Из таблицы/диапазона (или Получить данные → Из файла, если импортируете CSV).
- В открывшемся редакторе Power Query выделите столбец с датами.
- На вкладке Преобразование (или Transform в англоязычной версии) выберите:
- Дата и время → Дата (это удалит время).
- Или Извлечь → Дата (если нужно оставить только дату из комбинированного формата).
Преимущества Power Query:
- ⚡ Обрабатывает миллионы строк за секунды (в отличие от формул).
- 🔄 Правила сохраняются: при обновлении данных (например, из CSV) время будет удаляться автоматически.
- 🛠️ Позволяет комбинировать с другими преобразованиями (замена текста, фильтрация и т. д.).
⚠️ Внимание: если исходные данные в формате текста (например, "15/05/2026 14:30"), сначала преобразуйте их в дату/время с помощью кнопки Преобразовать → Тип данных: Дата/время.
Способ 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).
- Вернитесь в Excel, выделите столбец с датами и запустите макрос (
Alt+F8→ выберитеRemoveTimeFromDates→ Выполнить).
Модификации кода:
- 📌 Чтобы обработать весь лист, замените
SelectionнаActiveSheet.UsedRange. - 📅 Чтобы оставить другой формат даты (например,
dd-mm-yyyy), измените строкуcell.NumberFormat. - ⚠️ Чтобы пропускать ошибки (если в данных есть текст), добавьте
On Error Resume Nextв начало макроса.
⚠️ Внимание: макрос безвозвратно изменяет исходные данные. Перед запуском сохраните резервную копию файла или работайте на копии листа.
Сравнение методов: какой выбрать?
| Метод | Скорость | Сохраняет исходные данные | Подходит для больших данных | Требует навыков | Автоматизация |
|---|---|---|---|---|---|
| Форматирование | ⚡ Мгновенно | ✅ Да | ✅ Да | ❌ Нет | ❌ Нет |
| Функция ЦЕЛОЕ() | ⏳ Медленно на 100К+ строк | ❌ Нет (нужно вставлять значения) | ⚠️ Условно | ❌ Нет | ❌ Нет |
| ДАТА()+ГОД()+... | ⏳⏳ Очень медленно на больших данных | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет |
| Power Query | ⚡⚡ Очень быстро | ❌ Нет (но можно отменить) | ✅ Да (миллионы строк) | ⚠️ Средние | ✅ Да |
| VBA | ⚡ Быстро | ❌ Нет | ✅ Да | ✅ Да | ✅ Да |
Рекомендации по выбору:
- 📊 Для разового исправления небольшой таблицы: функция ЦЕЛОЕ() или форматирование (если время не мешает формулам).
- 📈 Для регулярного импорта (например, еженедельных отчётов): Power Query.
- 🤖 Для автоматизации или обработки сотен файлов: VBA.
- 🔧 Если данные повреждены (смешан текст и даты): ДАТА()+ГОД()+....
FAQ: Частые вопросы об удалении времени в Excel
Можно ли убрать время из даты без потери точности (например, для финансовых расчётов)?
Да, но важно понимать разницу между отображением и хранением данных. Если вам нужна точность до дня (например, для расчёта процентов по дням), используйте ЦЕЛОЕ() или Power Query — они сохранят корректную дату без времени. Если же требуется точность до секунды (например, для логов транзакций), удалять время нельзя: в этом случае лучше добавить отдельный столбец с «округлённой» датой, оставив исходные данные нетронутыми.
Почему после удаления времени функция СЕГОДНЯ() перестала работать корректно?
Функция СЕГОДНЯ() возвращает текущую дату с временем (например, 15.05.2026 14:30:00). Если вы сравниваете её с датой без времени (например, =A1=СЕГОДНЯ()), результат будет ЛОЖЬ, потому что 15.05.2026 00:00:00 ≠ 15.05.2026 14:30:00. Решение: оберните СЕГОДНЯ() в ЦЕЛОЕ():
=A1=ЦЕЛОЕ(СЕГОДНЯ())
Как убрать время из даты в сводной таблице?
В сводных таблицах время удаляется на этапе подготовки данных:
- Если данные подгружаются из Power Query, настройте удаление времени в запросе (см. Способ 4).
- Если источник — обычный диапазон, добавьте вспомогательный столбец с формулой
=ЦЕЛОЕ([@Дата])и используйте его в сводной таблице вместо исходного. - Группируйте даты по дням/месяцам: в сводной таблице кликните правой кнопкой по дате → Группировать → выберите Дни.
Почему после импорта из CSV даты отображаются как текст с временем?
Excel часто неправильно распознаёт форматы дат при импорте, особенно если разделитель — запятая или точка с запятой. Решения:
- 📌 Используйте Power Query для импорта: он лучше распознаёт даты.
- 📌 Перед импортом замените в CSV разделитель даты на точку (
.) и время на двоеточие (:). - 📌 После импорта выделите столбец → Текст по столбцам → укажите формат даты на последнем шаге.
Можно ли вернуть время обратно после его удаления?
Нет, если вы использовали ЦЕЛОЕ(), Power Query или VBA — исходные данные с временем безвозвратно потеряны. Исключение: если вы применили только форматирование (Способ 1), время сохранено внутри ячейки. Чтобы вернуть его, измените формат на дд.мм.гггг чч:мм:сс. Если данных больше нет, попробуйте восстановить предыдущую версию файла (Файл → Сведения → Управление книгой → Восстановить несохранённую книгу).