Как отделить время от даты в Excel: формулы, текстовые функции и макросы

Почему 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, с учётом нюансов разных версий.

📊 Как часто вам приходится разделять дату и время в Excel?
Ежедневно
Раз в неделю
Редко, но метко
Никогда не сталкивался

Метод 1: Изменение формата ячейки (без формул)

Если вам не нужно физически разделять данные по разным колонкам, а достаточно просто скрыть ненужную часть — используйте настройку формата. Это самый быстрый способ, но он не создаёт новых ячеек с отдельными значениями.

Как это работает:

  • 📅 Чтобы показать только дату: выделите ячейку → Главная → Формат → Формат ячеек → категория Дата → выберите нужный шаблон (например, 14.03.2001).
  • ⏰ Чтобы показать только время: в тех же настройках выберите категорию Время и формат 13:30:55.
  • 🔄 Чтобы вернуть исходный вид: установите формат Общий или Дата с включённым временем.
⚠️ Внимание: Этот метод визуально скрывает часть данных, но не удаляет её. Если вы скопируете ячейку в другую программу или используете её в формуле, полное значение (дата + время) останется.

Пример: если в ячейке A1 содержится 45412,60417 (15.05.2026 14:30), то:

Формат ячейкиОтображениеРеальное значение
Дата (14.03.2001)15.05.202645412,60417
Время (13:30:55)14:30:0045412,60417
Общий45412,6041745412,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+. Он позволяет разделить столбец на два клика, без формул.

Пошаговая инструкция:

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

Как использовать:

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