Как разделить дату и время в одной ячейке Excel: подробное руководство

Работа с датами и временем в Microsoft Excel часто требует преобразования данных для анализа или отчетности. Одна из распространенных задач — разделение даты и времени, которые хранятся в одной ячейке. Например, вы получаете данные из базы или внешнего источника, где дата и время записаны вместе: 15.05.2026 14:30:45. Как выделить из этого только дату или только время? Или разделить их по разным столбцам?

В этой статье мы рассмотрим 5 проверенных способов решения задачи — от простых функций до продвинутых приемов с использованием Power Query. Вы узнаете, как работать с разными форматами данных, избежать ошибок при преобразовании и автоматизировать процесс для больших массивов. А в конце статьи — ответы на частые вопросы и лайфхаки для ускорения работы.

Проблема разделения даты и времени актуальна не только для начинающих, но и для опытных пользователей. Дело в том, что Excel хранит дату и время как единое числовое значение (где целая часть — дата, а дробная — время). Это создает сложности при попытке извлечь только одну из компонент. К счастью, в арсенале программы есть инструменты для решения этой задачи — нужно лишь знать, как их правильно применить.

📊 Как часто вы сталкиваетесь с необходимостью разделять дату и время в 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 или базы данных), самый надежный способ — инструмент Текст по столбцам. Он позволяет разбить содержимое ячейки по разделителю.

Инструкция:

  1. Выделите столбец с данными.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Укажите разделитель (обычно это пробел) и снимите галочки с других разделителей.
  5. Нажмите Готово.

В результате дата и время будут разделены по двум соседним столбцам. Главное преимущество этого метода — он работает даже с нестандартными форматами, где функции Excel могут дать сбой.

Убедитесь, что данные в текстовом формате (проверьте выравнивание по левому краю)

Проверьте, что разделитель между датой и временем одинаковый во всех ячейках

Создайте резервную копию данных перед преобразованием

Примените нужный формат к новым столбцам после разделения-->

4. Power Query: автоматическое разделение для больших массивов

Если вам нужно обработать тысячи строк, ручные методы не подойдут. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее). Он позволяет создавать автоматизированные процессы преобразования данных.

Алгоритм действий:

  1. Выделите исходные данные и перейдите на вкладку ДанныеИз таблицы/диапазона (если данные не в таблице, Excel предложит создать ее).
  2. В открывшемся редакторе Power Query выделите столбец с датой и временем.
  3. Перейдите на вкладку ПреобразоватьРазделить столбецПо разделителю.
  4. Укажите разделитель (пробел) и выберите вариант разделения (На каждую вхождение разделителя).
  5. Нажмите ОК и загрузите данные обратно в 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

Чтобы использовать этот код:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон с данными и запустите макрос (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 или применять временную зону. Чтобы исправить:

  1. Проверьте формат ячейки с временем (должен быть чч:мм:сс).
  2. Если проблема сохраняется, добавьте или вычтите разницу во времени вручную (например, =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 округляют время до секунд. Чтобы сохранить миллисекунды:

  1. Используйте формулу =A1-ЦЕЛОЕ(A1) для извлечения дробной части.
  2. Примените пользовательский формат времени: чч:мм:сс.000.
  3. Для вычислений с миллисекундами умножьте дробную часть на 86400000 (количество миллисекунд в сутках).