Работа с датами и временем в Microsoft Excel часто требует преобразования данных для анализа или отчетности. Одна из распространенных задач — разделение даты и времени, которые хранятся в одной ячейке. Например, вы получаете данные из базы или внешнего источника, где дата и время записаны вместе: 15.05.2026 14:30:45. Как выделить из этого только дату или только время? Или разделить их по разным столбцам?
В этой статье мы рассмотрим 5 проверенных способов решения задачи — от простых функций до продвинутых приемов с использованием Power Query. Вы узнаете, как работать с разными форматами данных, избежать ошибок при преобразовании и автоматизировать процесс для больших массивов. А в конце статьи — ответы на частые вопросы и лайфхаки для ускорения работы.
Проблема разделения даты и времени актуальна не только для начинающих, но и для опытных пользователей. Дело в том, что Excel хранит дату и время как единое числовое значение (где целая часть — дата, а дробная — время). Это создает сложности при попытке извлечь только одну из компонент. К счастью, в арсенале программы есть инструменты для решения этой задачи — нужно лишь знать, как их правильно применить.
1. Разделение с помощью функций ДАТА(), ВРЕМЯ() и ТЕКСТ()
Самый простой способ разделить дату и время — использовать стандартные функции Excel. Если ваши данные хранятся в формате дд.мм.гггг чч:мм:сс, можно извлечь компоненты с помощью формул.
Для извлечения только даты используйте функцию =ЦЕЛОЕ(A1) или =ДАТА(ГОД(A1); МЕСЯЦ(A1); ДЕНЬ(A1)). Обе формулы вернут дату без времени. Например, если в ячейке A1 содержится 15.05.2026 14:30:45, результат будет 15.05.2026.
Для извлечения только времени подойдет формула:
=A1-ЦЕЛОЕ(A1)
Но результат будет в формате числа (например, 0,59722). Чтобы отобразить его как время, примените формат ячейки Время или используйте функцию =ТЕКСТ(A1-ЦЕЛОЕ(A1); "чч:мм:сс").
- ✅ Плюсы: быстро, не требует дополнительных инструментов
- ⚠️ Минусы: если данные хранятся как текст, формулы не сработают
- 🔄 Альтернатива: для текстового формата используйте
=ДАТАЗНАЧ()+=ВРЕМЗНАЧ()
2. Использование функции РАЗДЕЛИТЬ.TEXT (Excel 365 и 2021)
В новых версиях Excel (начиная с 2021 и Excel 365) появилась удобная функция =РАЗДЕЛИТЬ.TEXT(), которая позволяет разбивать текст по разделителю. Если ваша дата и время разделены пробелом (например, 15.05.2026 14:30), можно использовать эту функцию для автоматического разделения.
Формула будет выглядеть так:
=РАЗДЕЛИТЬ.TEXT(A1; " ")
Результат — массив из двух значений: первое — дата, второе — время. Чтобы извлечь их в отдельные ячейки, используйте:
=ИНДЕКС(РАЗДЕЛИТЬ.TEXT(A1; " ");1;1) // для даты
=ИНДЕКС(РАЗДЕЛИТЬ.TEXT(A1; " ");1;2) // для времени
Этот метод особенно удобен, если у вас большой объем данных и нужно быстро разделить их без ручного форматирования. Однако помните, что функция РАЗДЕЛИТЬ.TEXT работает только в последних версиях Excel.
⚠️ Внимание: Если в вашей версии Excel нет функцииРАЗДЕЛИТЬ.TEXT, используйте комбинацию=ЛЕВСИМВ()и=ПРАВСИМВ()с поиском позиции пробела через=НАЙТИ(" ";. Но это менее универсально.
3. Разделение через "Текст по столбцам" (для текстового формата)
Если дата и время хранятся как текст (например, после импорта из CSV или базы данных), самый надежный способ — инструмент Текст по столбцам. Он позволяет разбить содержимое ячейки по разделителю.
Инструкция:
- Выделите столбец с данными.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями→Далее. - Укажите разделитель (обычно это
пробел) и снимите галочки с других разделителей. - Нажмите
Готово.
В результате дата и время будут разделены по двум соседним столбцам. Главное преимущество этого метода — он работает даже с нестандартными форматами, где функции Excel могут дать сбой.
Убедитесь, что данные в текстовом формате (проверьте выравнивание по левому краю)
Проверьте, что разделитель между датой и временем одинаковый во всех ячейках
Создайте резервную копию данных перед преобразованием
Примените нужный формат к новым столбцам после разделения-->
4. Power Query: автоматическое разделение для больших массивов
Если вам нужно обработать тысячи строк, ручные методы не подойдут. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее). Он позволяет создавать автоматизированные процессы преобразования данных.
Алгоритм действий:
- Выделите исходные данные и перейдите на вкладку
Данные→Из таблицы/диапазона(если данные не в таблице, Excel предложит создать ее). - В открывшемся редакторе Power Query выделите столбец с датой и временем.
- Перейдите на вкладку
Преобразовать→Разделить столбец→По разделителю. - Укажите разделитель (пробел) и выберите вариант разделения (
На каждую вхождение разделителя). - Нажмите
ОКи загрузите данные обратно в Excel.
Power Query сохраняет все шаги преобразования, поэтому при обновлении исходных данных достаточно нажать "Обновить" — и разделение произойдет автоматически. Это идеальный вариант для регулярных отчетов.
| Метод | Подходит для | Сложность | Автоматизация |
|---|---|---|---|
Функции ДАТА(), ВРЕМЯ() |
Данные в формате даты/времени | Низкая | Да (формулы) |
РАЗДЕЛИТЬ.TEXT() |
Текстовый формат (Excel 365/2021) | Средняя | Да |
| Текст по столбцам | Текстовый формат, нестандартные разделители | Низкая | Нет |
| Power Query | Большие массивы, регулярная обработка | Высокая (настройка) | Да (обновление) |
5. Разделение с помощью VBA (для продвинутых пользователей)
Если вам нужно полностью автоматизировать процесс или обработать данные по сложным правилам, поможет макрос на VBA. Например, следующий код разделит дату и время в выделенном диапазоне и запишет результаты в соседние столбцы:
Sub SplitDateTime()
Dim rng As Range
Dim cell As Range
Dim dateCol As Integer, timeCol As Integer
Set rng = Selection
dateCol = rng.Column + 1 ' Столбец для даты
timeCol = rng.Column + 2 ' Столбец для времени
For Each cell In rng
If IsDate(cell.Value) Then
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"
End If
Next cell
End Sub
Чтобы использовать этот код:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с данными и запустите макрос (
F5).
Преимущество VBA — гибкость: вы можете модифицировать код под свои нужды, например, добавить обработку ошибок или сохранение результатов в другом листе.
Добавьте в начало кода строку Используйте После обработки добавьте Как защитить макрос от ошибок?
On Error Resume Next, чтобы макрос не останавливался при встрече с некорректными данными.If IsDate(cell.Value) Then для проверки, что ячейка содержит дату/время.On Error GoTo 0, чтобы сбросить обработку ошибок.
Типичные ошибки и как их избежать
При разделении даты и времени пользователи часто сталкиваются с проблемами. Вот самые распространенные из них и способы решения:
- 🔢 Дата отображается как число (например, 45342): это происходит, потому что ячейка имеет общий формат. Решение: выделите ячейку →
Ctrl+1→ выберите форматДата. - ⏰ Время показывает 00:00: вероятно, в исходных данных время отсутствует или ячейка содержит только дату. Проверьте данные с помощью
=ЕТЕКСТ(A1). - 📉 Функции возвращают #ЗНАЧ!: это означает, что Excel не распознает данные как дату/время. Используйте
=ДАТАЗНАЧ()для преобразования текста в дату.
⚠️ Внимание: Если вы импортируете данные из внешних источников (например, SQL или JSON), дата и время могут храниться в форматеISO 8601(например,2026-05-15T14:30:45). В этом случае сначала замените"T"на пробел с помощью=ПОДСТАВИТЬ(A1; "T"; " "), а затем применяйте методы разделения.
FAQ: Ответы на частые вопросы
Можно ли разделить дату и время, если они записаны в одной ячейке без пробела (например, 15.05.202614:30)?
Да, но это потребует дополнительных манипуляций. Сначала добавьте пробел перед временем с помощью формулы:
=ЛЕВСИМВ(A1;10) & " " & ПРАВСИМВ(A1;5)
Затем используйте любой из описанных выше методов (например, Текст по столбцам). Альтернативно можно воспользоваться функцией =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) для извлечения даты и =ВРЕМЗНАЧ(ПРАВСИМВ(A1;5)) для времени.
Почему после разделения время сдвигается на несколько часов?
Это происходит из-за настроек региональных параметров Excel. Программа может интерпретировать время как UTC или применять временную зону. Чтобы исправить:
- Проверьте формат ячейки с временем (должен быть
чч:мм:сс). - Если проблема сохраняется, добавьте или вычтите разницу во времени вручную (например,
=A1-ЦЕЛОЕ(A1)+ВРЕМЯ(3;0;0)для добавления 3 часов).
Как разделить дату и время в Google Sheets?
В Google Таблицах используйте аналогичные функции:
- Для даты:
=INT(A1)или=DATE(YEAR(A1); MONTH(A1); DAY(A1)). - Для времени:
=A1-INT(A1)(затем примените формат времени). - Для текстового разделения:
=SPLIT(A1; " ").
Также в Google Sheets есть инструмент Разделить текст на столбцы (меню Данные).
Можно ли разделить дату и время без потери точности (миллисекунд)?
Да, но стандартные функции Excel округляют время до секунд. Чтобы сохранить миллисекунды:
- Используйте формулу
=A1-ЦЕЛОЕ(A1)для извлечения дробной части. - Примените пользовательский формат времени:
чч:мм:сс.000. - Для вычислений с миллисекундами умножьте дробную часть на 86400000 (количество миллисекунд в сутках).