Почему Excel объединяет дату и время — и как это исправить
Вы когда-нибудь сталкивались с ситуацией, когда в ячейке Excel отображается что-то вроде 15.05.2026 14:30, а вам нужно разделить это на две отдельные колонки — одна для даты (15.05.2026), другая для времени (14:30)? Это типичная проблема при импорте данных из баз, логов или внешних систем, где дата и время хранятся в одном поле.
Excel воспринимает такие данные как единый формат даты-времени, где числовое значение ячейки представляет количество дней с 1 января 1900 года (дробная часть — время). Например, число 45412,60417 для Excel — это 15.05.2026 14:30. Чтобы разделить их, нужно либо изменить формат отображения, либо применить специальные функции.
В этой статье мы разберём 5 рабочих методов — от простейших (изменение формата ячейки) до продвинутых (макросы VBA). Все решения протестированы в Excel 2010–2023 и Google Sheets, с учётом нюансов разных версий.
Метод 1: Изменение формата ячейки (без формул)
Если вам не нужно физически разделять данные по разным колонкам, а достаточно просто скрыть ненужную часть — используйте настройку формата. Это самый быстрый способ, но он не создаёт новых ячеек с отдельными значениями.
Как это работает:
- 📅 Чтобы показать только дату: выделите ячейку →
Главная → Формат → Формат ячеек→ категорияДата→ выберите нужный шаблон (например,14.03.2001). - ⏰ Чтобы показать только время: в тех же настройках выберите категорию
Времяи формат13:30:55. - 🔄 Чтобы вернуть исходный вид: установите формат
ОбщийилиДатас включённым временем.
⚠️ Внимание: Этот метод визуально скрывает часть данных, но не удаляет её. Если вы скопируете ячейку в другую программу или используете её в формуле, полное значение (дата + время) останется.
Пример: если в ячейке A1 содержится 45412,60417 (15.05.2026 14:30), то:
| Формат ячейки | Отображение | Реальное значение |
|---|---|---|
Дата (14.03.2001) | 15.05.2026 | 45412,60417 |
Время (13:30:55) | 14:30:00 | 45412,60417 |
Общий | 45412,60417 | 45412,60417 |
Метод 2: Функции ЦЕЛОЕ() и ДРОБЬ() для разделения
Если нужно физически разделить дату и время по разным ячейкам, используйте комбинацию функций ЦЕЛОЕ() и ДРОБЬ(). Этот метод работает, потому что в Excel:
- Целая часть числа = количество дней с 1900 года (дата).
- Дробная часть = доля суток (время).
Формулы:
- 📅 Для даты:
=ЦЕЛОЕ(A1)(гдеA1— ячейка с исходными данными). - ⏰ Для времени:
=ДРОБЬ(A1).
После применения формул не забудьте установить правильный формат ячеек (Дата и Время соответственно).
Ячейка с датой отображается корректно (например, 15.05.2026)|Ячейка со временем показывает только часы:минуты|Формат ячеек с результатом изменён на "Дата" и "Время"|Исходные данные не были изменены (формулы в новых ячейках)-->
⚠️ Внимание: Если в исходной ячейке текстовый формат (например, результат импорта из CSV), предварительно преобразуйте его в число с помощью=ЗНАЧЕН(A1)илиТекст по столбцам(Данные → Текст по столбцам).
Метод 3: Текстовые функции ЛЕВСИМВ(), ПРАВСИМВ() и ПОИСК()
Когда дата и время разделены символом (например, пробелом или T как в ISO-формате), можно использовать текстовые функции. Этот способ подходит для данных в формате:
2026-05-15 14:30:00(пробел как разделитель)2026-05-15T14:30:00(ISO-формат сT)
Формулы для разделения (если разделитель — пробел):
- 📅 Дата:
=ЛЕВСИМВ(A1; ПОИСК(" "; A1) - 1) - ⏰ Время:
=ПРАВСИМВ(A1; ДЛСТР(A1) - ПОИСК(" "; A1))
Для ISO-формата (2026-05-15T14:30:00):
- 📅 Дата:
=ЛЕВСИМВ(A1; ПОИСК("T"; A1) - 1) - ⏰ Время:
=ПРАВСИМВ(A1; ДЛСТР(A1) - ПОИСК("T"; A1))
Критичный нюанс: после извлечения текстовых значений их нужно преобразовать обратно в формат даты/времени с помощью =ДАТАЗНАЧ() и =ВРЕМЯЗНАЧ(), иначе Excel будет воспринимать их как текст.
Метод 4: Функция РАЗБИТЬ.НА.СТОЛБЦЫ() (Power Query)
Для больших объёмов данных (тысячи строк) удобнее использовать Power Query — инструмент для преобразования данных, встроенный в Excel 2016+. Он позволяет разделить столбец на два клика, без формул.
Пошаговая инструкция:
- Выделите исходные данные →
Данные → Из таблицы/диапазона(в Excel 2016+) илиДанные → Получение данных → Из таблицы/диапазона(в Excel 2013). - В открывшемся редакторе Power Query выделите столбец с датой-временем →
Преобразовать → Разбить столбец → По разделителю. - Укажите разделитель (пробел,
Tили другой символ) → нажмитеOK. - При необходимости измените формат новых столбцов на
ДатаиВремя. - Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Преимущества метода:
- ⚡ Обрабатывает миллионы строк без замедления.
- 🔄 Сохраняет связь с исходными данными (обновляется автоматически).
- 📊 Позволяет добавить дополнительные преобразования (например, заменить формат даты).
Что делать, если Power Query не виден в меню?
В Excel 2013 и 2016 надстройка Power Query устанавливается отдельно (бесплатно) с сайта Microsoft. В Excel 2019+ она встроена по умолчанию под названием "Получить данные" (Данные → Получение данных).
Метод 5: Макрос VBA для автоматического разделения
Если вам регулярно приходится разделять дату и время, автоматизируйте процесс с помощью макроса VBA. Этот код разделит выделенные ячейки на два столбца справа:
Sub SplitDateTime()
Dim rng As Range
Dim cell As Range
Dim dateCol As Integer, timeCol As Integer
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "Выделите ячейки с датой и временем!", vbExclamation
Exit Sub
End If
dateCol = rng.Column + 1
timeCol = rng.Column + 2
For Each cell In rng
Cells(cell.Row, dateCol).Value = Int(cell.Value)
Cells(cell.Row, timeCol).Value = cell.Value - Int(cell.Value)
Cells(cell.Row, dateCol).NumberFormat = "dd.mm.yyyy"
Cells(cell.Row, timeCol).NumberFormat = "hh:mm:ss"
Next cell
MsgBox "Дата и время разделены!", vbInformation
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с данными → запустите макрос (
F5или черезВид → Макросы).
⚠️ Внимание: Макрос перезапишет данные в столбцах справа от выделенного диапазона. Перед запуском убедитесь, что эти ячейки пустые или сохраните резервную копию.
Сравнение методов: какой выбрать?
Выбор метода зависит от задачи, объёма данных и вашего уровня владения Excel. Ниже таблица для быстрого сравнения:
| Метод | Сложность | Подходит для | Сохраняет связь с исходными данными | Работает с текстовыми данными |
|---|---|---|---|---|
| Формат ячейки | ⭐ | Быстрого просмотра | Нет | Да |
ЦЕЛОЕ()/ДРОБЬ() | ⭐⭐ | Числовых данных | Да (формулы) | Нет |
| Текстовые функции | ⭐⭐⭐ | Данных с разделителями | Да (формулы) | Да |
| Power Query | ⭐⭐⭐ | Больших объёмов | Да (связь) | Да |
| Макрос VBA | ⭐⭐⭐⭐ | Автоматизации | Нет | Нет |
Рекомендации:
- 🔹 Для разового разделения 10–100 строк: используйте
ЦЕЛОЕ()/ДРОБЬ(). - 🔹 Для импортированных данных с разделителями: текстовые функции или Power Query.
- 🔹 Для ежедневной обработки тысяч строк: Power Query или макрос.
FAQ: Частые вопросы и ошибки
❓ Почему после разделения дата отображается как число (например, 45412)?
Это происходит, потому что Excel хранит даты как числа (количество дней с 1900 года). Чтобы исправить, выделите ячейку → Главная → Формат → Формат ячеек → выберите категорию Дата и нужный шаблон.
❓ Формула =ЦЕЛОЕ(A1) возвращает ошибку #ЗНАЧ!. В чём дело?
Ошибка возникает, если в ячейке A1 текст, а не число. Преобразуйте данные в числовой формат с помощью =ЗНАЧЕН(A1) или инструмента Текст по столбцам (Данные → Текст по столбцам).
❓ Как разделить дату и время в Google Sheets?
В Google Таблицах работают те же принципы, но вместо ЦЕЛОЕ() используйте =INT(A1), а вместо ДРОБЬ() — =MOD(A1; 1). Для текстовых данных подойдут функции =SPLIT() или =REGEXEXTRACT().
❓ Можно ли разделить дату и время без потери точности (миллисекунды)?
Да, но стандартные функции Excel округляют время до секунд. Для сохранения миллисекунд используйте формулу:
=ВРЕМЯ(ЧАС(A1); МИНУТА(A1); СЕКУНДЫ(A1) + (A1-ЦЕЛОЕ(A1))*86400)
Где 86400 — количество секунд в сутках.
❓ Почему после импорта из CSV дата и время в одной ячейке отображаются как текст?
Excel автоматически не распознаёт некоторые форматы даты-времени (например, 2026-05-15 14:30:00). Используйте Текст по столбцам (Данные → Текст по столбцам) и на шаге 3 выберите формат ДМЙ Г:М:С.