Вы когда-нибудь сталкивались с ситуацией, когда в одном столбце Excel хранятся и дата, и время — например, 15.05.2026 14:30:45 — а вам нужно разделить их на два отдельных столбца? Это типичная задача при работе с логами, отчётами о продажах или данными из внешних систем. К сожалению, стандартное копирование и вставка здесь не помогут: Excel воспринимает такие ячейки как единое значение дата-время, и простое разделение по пробелу или другим символам часто приводит к ошибкам.
В этой статье мы разберём 5 надёжных способов разделения даты и времени — от простых функций до автоматизации через Power Query и VBA. Вы узнаете, какой метод выбрать в зависимости от версии Excel (2010, 2016, 2019, 2023 или Office 365), объёма данных и необходимости дальнейшей обработки. А ещё мы раскроем скрытую особенность формата даты-времени в Excel, из-за которой многие пользователи получают некорректные результаты при разделении.
Почему простое разделение по пробелу не работает
На первый взгляд, самый очевидный способ — использовать инструмент Текст по столбцам (вкладка Данные) и разделить значение по пробелу. Однако этот метод негарантированно сработает по трём причинам:
- 🔹 Excel хранит дату и время как числовое значение (количество дней с 1900 года), а отображает его в читаемом формате. При разделении по символу вы получите текстовые строки, которые потом придётся конвертировать обратно в даты.
- 🔹 В некоторых локалях (например, в немецкой версии Excel) дата и время разделяются не пробелом, а точкой с запятой или другим символом.
- 🔹 Если ячейка содержит только время (без даты), инструмент
Текст по столбцамможет интерпретировать его как дату01.01.1900.
Давайте проверим на практике. Предположим, у вас в ячейке A1 значение 15.05.2026 14:30:45. Если вы примените Текст по столбцам → Разделитель → Пробел, то:
- В первом столбце получите текст
15.05.2026(который Excel не распознаёт как дату автоматически). - Во втором — текст
14:30:45(который не является временем в формате Excel, пока вы не примените к нему специальный формат).
⚠️ Внимание: Если после разделения вы попытаетесь отсортировать столбец с "датой", Excel расположит значения в алфавитном порядке (например,10.05.2026окажется выше2.05.2026), а не по хронологии.
Метод 1: Функции ДАТАЗНАЧ и ВРЕМЗНАЧ (для Excel 2013 и новее)
Самый надёжный способ — использовать комбинацию функций ДАТАЗНАЧ (или DATEVALUE в английской версии) и ВРЕМЗНАЧ (TIMEVALUE). Эти функции преобразуют текстовые представления даты и времени в числовые форматы, которые Excel может обрабатывать.
Формулы для разделения (предположим, исходные данные в столбце A):
=ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) // Извлекает дату (первые 10 символов)
=ВРЕМЗНАЧ(ПРАВСИМВ(A1;8)) // Извлекает время (последние 8 символов)
Если формат даты-времени в ваших данных отличается (например, 2026-05-15 14:30), скорректируйте количество символов в функция ЛЕВСИМВ и ПРАВСИМВ. Для универсальности можно использовать функцию НАЙТИ, чтобы автоматически определять позицию пробела:
=ДАТАЗНАЧ(ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1))
=ВРЕМЗНАЧ(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)))
| Исходное значение (A1) | Формула для даты | Формула для времени | Результат (дата) | Результат (время) |
|---|---|---|---|---|
15.05.2026 14:30:45 | =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) | =ВРЕМЗНАЧ(ПРАВСИМВ(A1;8)) | 15.05.2026 | 14:30:45 |
2026-05-15 2:30 PM | =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) | =ВРЕМЗНАЧ(ПРАВСИМВ(A1;7)) | 15.05.2026 | 14:30:00 |
15/05/2026 14:30 | =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) | =ВРЕМЗНАЧ(ПРАВСИМВ(A1;5)) | 15.05.2026 | 14:30:00 |
⚠️ Внимание: ФункцияДАТАЗНАЧне работает с форматом датыдд.мм.ггггв русских версиях Excel старше 2016 года. В этом случае используйте функциюЗНАЧЕНс заменой точек на дефисы:=ЗНАЧЕН(ПОДСТАВИТЬ(ЛЕВСИМВ(A1;10);".";"-")).
Метод 2: Текст по столбцам + преобразование форматов
Если вам удобнее работать через интерфейс, а не формулы, можно использовать инструмент Текст по столбцам, но с обязательной постобработкой. Вот пошаговая инструкция:
- Выделите столбец с данными.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями→Далее. - Уберите все галочки с разделителей и вручную введите пробел в поле
Другой. - Нажмите
Готово.
Теперь у вас два столбца с текстовыми значениями. Чтобы преобразовать их в дату и время:
- Выделите столбец с датами, нажмите
Ctrl+1(или правой кнопкой →Формат ячеек). - Выберите формат
Датаи укажите нужный тип (например,14.03.2012). - Повторите для столбца со временем, выбрав формат
Время.
☑️ Подготовка данных перед разделением
Этот метод подходит для одноразовой обработки небольших наборов данных. Для регулярных задач лучше использовать формулы или Power Query.
Метод 3: Функции ЦЕЛОЕ и ДРОБЬ (для числовых значений)
Excel хранит дату и время как дробное число, где:
- Целая часть — количество дней с
01.01.1900(дата). - Дробная часть — доля суток (время).
Если ваш столбец уже отформатирован как Дата-время (а не текст), вы можете извлечь дату и время с помощью функций ЦЕЛОЕ и ДРОБЬ:
=ЦЕЛОЕ(A1) // Возвращает дату (целую часть)
=A1-ЦЕЛОЕ(A1) // Возвращает время (дробную часть)
После этого примените к столбцам соответствующие форматы:
- Для даты:
Формат ячеек → Дата. - Для времени:
Формат ячеек → Время.
⚠️ Внимание: Если исходные данные хранятся как текст (например, после импорта из CSV), сначала преобразуйте их в формат даты-времени с помощью функцииЗНАЧЕН:=ЗНАЧЕН(A1).
Почему функция ДРОБЬ возвращает число от 0 до 1?
В Excel время хранится как доля суток: 0 соответствует 00:00:00, а 0,5 — 12:00:00. Например, значение 0,75 означает 18:00:00 (3/4 суток).
Метод 4: Power Query (для больших наборов данных)
Если вам нужно обработать тысячи строк или регулярно обновлять данные, Power Query (доступен в Excel 2016 и новее) станет идеальным решением. Этот инструмент позволяет автоматизировать преобразования и обновлять результаты одним кликом.
Инструкция по разделению даты и времени через Power Query:
- Выделите исходные данные и нажмите
Данные → Из таблицы/диапазона(илиData → From Table/Range). - Если Excel спросит, подтвердите создание таблицы.
- В открывшемся редакторе Power Query выделите столбец с датой-временем.
- Перейдите на вкладку
Добавить столбец→Даты и время→Дата. - Повторите шаг 4, но выберите
Время. - Удалите исходный столбец (правая кнопка →
Удалить). - Нажмите
Закрыть и загрузить.
Преимущества этого метода:
- 🔄 Автоматическое обновление при изменении исходных данных (достаточно нажать
Обновить все). - 📊 Сохранение связи с источником (можно добавлять новые строки без повторной обработки).
- 🛠 Гибкость: в Power Query можно сразу очищать данные, заменять форматы, объединять с другими источниками.
Метод 5: VBA-макрос для автоматизации
Для пользователей, которые часто сталкиваются с этой задачей, можно написать простой макрос. Он разделит дату и время по выделенному диапазону и создаст два новых столбца.
Код макроса:
Sub SplitDateTime()
Dim rng As Range
Dim cell As Range
Dim dateCol As Range, timeCol As Range
' Проверяем, выделен ли диапазон
On Error Resume Next
Set rng = Selection
On Error GoTo 0
If rng Is Nothing Then
MsgBox "Выделите диапазон с датами и временем!", vbExclamation
Exit Sub
End If
' Создаём столбцы для даты и времени
Set dateCol = rng.Offset(0, 1)
Set timeCol = rng.Offset(0, 2)
' Заголовки столбцов
dateCol.Cells(1).Value = "Дата"
timeCol.Cells(1).Value = "Время"
' Обрабатываем каждую ячейку
For Each cell In rng
If IsDate(cell.Value) Then
dateCol.Cells(cell.Row).Value = Int(cell.Value)
timeCol.Cells(cell.Row).Value = cell.Value - Int(cell.Value)
' Применяем форматы
dateCol.Cells(cell.Row).NumberFormat = "dd.mm.yyyy"
timeCol.Cells(cell.Row).NumberFormat = "hh:mm:ss"
End If
Next cell
MsgBox "Дата и время успешно разделены!", vbInformation
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с данными и запустите макрос (
F5или черезМакросыв Excel).
⚠️ Внимание: Макрос перезапишет данные в столбцах справа от выделенного диапазона. Перед запуском убедитесь, что эти ячейки пустые или резервная копия сохранена.
Частые ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при разделении даты и времени. Вот самые распространённые ошибки и их решения:
| Ошибка | Причина | Решение |
|---|---|---|
Вместо даты отображается ######## | Столбец слишком узкий для формата даты. | Расширьте столбец или измените формат на более короткий (например, дд.мм.гг). |
Функция ДАТАЗНАЧ возвращает #ЗНАЧ! | Excel не распознаёт формат даты (например, дд-мм-гггг в русской версии). | Используйте ЗНАЧЕН(ПОДСТАВИТЬ(ЛЕВСИМВ(A1;10);".";"-")). |
Время отображается как 00:00:00 | Ячейка содержит только дату (время = 0). | Проверьте исходные данные или используйте условное форматирование, чтобы скрыть нулевые значения. |
| После разделения даты отсортированы неправильно | Столбец с датами имеет текстовый формат. | Примените формат Дата и пересортируйте. |
Ещё одна типичная проблема — разные форматы даты в одном столбце (например, 15.05.2026 и 15/05/2026). В этом случае:
- 🔹 Используйте Power Query для унификации форматов.
- 🔹 Или примените функцию
ПОДСТАВИТЬперед разделением:=ПОДСТАВИТЬ(A1;"/";".").
FAQ: Ответы на частые вопросы
Можно ли разделить дату и время без формул?
Да, с помощью инструмента Текст по столбцам (метод 2). Однако после разделения придётся вручную назначить форматы Дата и Время новым столбцам, иначе Excel будет воспринимать их как текст.
Почему после разделения время отображается как 0,58333?
Это нормально! Excel хранит время как долю суток. Число 0,58333 соответствует 14:00:00 (0,5833 × 24 часа ≈ 14 часов). Чтобы увидеть время в привычном формате, примените к ячейке формат Время.
Как разделить дату и время в Google Sheets?
В Google Таблицах используйте те же функции, но с английскими названиями:
=DATEVALUE(LEFT(A1;10)) // Дата
=TIMEVALUE(RIGHT(A1;8)) // Время
Или воспользуйтесь меню Данные → Разделить текст на столбцы.
Можно ли разделить дату и время в Excel Online?
Да, но с ограничениями:
- 🔹 Работают функции
ДАТАЗНАЧ/ВРЕМЗНАЧиЦЕЛОЕ/ДРОБЬ. - 🔹 Нет доступа к Power Query и VBA.
- 🔹 Инструмент
Текст по столбцамдоступен, но с урезанным функционалом.
Как объединить дату и время обратно?
Используйте простую формулу сложения:
=A1+B1
где A1 — ячейка с датой, а B1 — с временем. Затем примените формат Дата-время.