Работа с датами и временем в Microsoft Excel — одна из самых востребованных задач при анализе данных. Однако многие пользователи сталкиваются с проблемой: как правильно объединить отдельные ячейки с датой и временем в одну временную метку? Например, у вас в колонке A хранится дата (15.05.2026), а в колонке B — время (14:30:00). Как получить единое значение 15.05.2026 14:30:00 без потери формата?
В этой статье мы разберём 5 рабочих методов — от простых формул до автоматизации через VBA. Вы узнаете, как избежать ошибок при конкатенации, почему иногда результат отображается как число, и как настроить корректный формат ячеек. А ещё — уникальный лайфхак для объединения данных из нескольких листов с разными временными зонами.
Если вы работаете с логами, отчётами или планировщиками, умение правильно объединять дату и время сэкономит часы ручной обработки. Давайте разберёмся, как это сделать быстро и без ошибок.
Почему простое объединение текста не работает
Многие пользователи пытаются объединить дату и время через символ & или функцию СЦЕПИТЬ (или CONCATENATE в английской версии). Например:
=A1 & " " & B1
Но результат часто получается некорректным: вместо ожидаемой временной метки Excel показывает число вроде 45412,60417. Почему так происходит?
Дело в том, что Excel хранит даты и время как серийные числа:
- 📅 Даты — количество дней с 1 января 1900 года (например,
15.05.2026=45412). - ⏰ Время — дробная часть дня (например,
14:30:00=0,60417).
При простом объединении текста Excel не распознаёт результат как временную метку — он остаётся строкой или числом.
Чтобы получить корректный результат, нужно сложить дату и время как числа, а затем применить правильный формат ячейки. Об этом — в следующем разделе.
Метод 1: Сложение даты и времени (самый надёжный способ)
Это базовый и универсальный метод, который работает во всех версиях Excel. Алгоритм простой:
- Убедитесь, что ячейки с датой и временем имеют формат
ДатаиВремясоответственно. - В новой ячейке используйте формулу сложения:
=A1 + B1 - Примените к результату формат
Дата и время(например,дд.мм.гггг чч:мм:сс).
Пример:
| Дата (A1) | Время (B1) | Формула | Результат (формат "дд.мм.гггг чч:мм") |
|---|---|---|---|
| 15.05.2026 | 14:30:00 | =A1+B1 | 15.05.2026 14:30 |
| 10.12.2023 | 08:15:22 | =A2+B2 | 10.12.2023 08:15 |
| 01.01.2026 | 23:59:59 | =A3+B3 | 01.01.2026 23:59 |
Важно! Если в ячейках с временем указаны только часы и минуты (например, 14:30), Excel автоматически подставит секунды как 00. Чтобы избежать этого, используйте формат чч:мм для исходных данных.
Ячейки с датой имеют формат "Дата"|Ячейки со временем имеют формат "Время"|Результат сложения отформатирован как "Дата и время"|Нет лишних пробелов в исходных данных-->
Метод 2: Функция ДАТАВРЕМЯ (для ручного ввода)
Если дата и время хранятся как текст или вам нужно создать временную метку "с нуля", используйте функцию ДАТАВРЕМЯ (англ. DATE + TIME):
=ДАТА(год; месяц; день) + ВРЕМЯ(часы; минуты; секунды)
Пример для 15.05.2026 14:30:00:
=ДАТА(2026; 5; 15) + ВРЕМЯ(14; 30; 0)
Этот метод удобен, если:
- 📝 Данные вводятся вручную или импортируются из внешних источников.
- 🔢 Нужно создать временную метку на основе отдельных компонентов (год, месяц, часы и т.д.).
- 📊 Требуется динамическое обновление даты/времени (например,
=ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); ДЕНЬ(СЕГОДНЯ()))).
⚠️ Внимание: ФункцияДАТАВРЕМЯкак таковая в Excel отсутствует — это комбинацияДАТАиВРЕМЯ. Не путайте сДАТАЗНАЧ(англ.DATEVALUE), которая преобразует текст в дату.
Метод 3: Объединение текста с преобразованием в дату
Если дата и время хранятся как текст (например, после импорта из CSV), используйте комбинацию функций ДАТАЗНАЧ и ВРЕМЗНАЧ:
=ДАТАЗНАЧ(A1) + ВРЕМЗНАЧ(B1)
Где:
A1— ячейка с текстовой датой (например,"15.05.2026").B1— ячейка с текстовым временем (например,"14:30:00").
Этот метод критичен для данных, экспортированных из:
- 📄 Баз данных (SQL, MySQL).
- 📥 Лог-файлов (JSON, XML).
- 📊 Систем аналитики (Google Analytics, Яндекс.Метрика).
Если после применения функции результат отображается как ошибка
Если функция Эта формула извлекает часы, минуты и секунды из текстовой строки времени (формат #ЗНАЧ!, проверьте региональные настройки Excel: формат даты в тексте должен совпадать с системными настройками (например, дд.мм.гггг vs мм/дд/гггг).
Что делать, если
ВРЕМЗНАЧ не работает?ВРЕМЗНАЧ возвращает ошибку, попробуйте альтернативный вариант:=ДАТАЗНАЧ(A1) + (ВРЕМЯ(ЛЕВСИМВ(B1;2); ПСТР(B1;4;2); ПСТР(B1;7;2)))чч:мм:сс).
Метод 4: Power Query для массового объединения
Если вам нужно объединить дату и время для тысяч строк, ручные формулы неэффективны. В этом случае поможет Power Query (доступен в Excel 2016+ и Excel 365):
- Выделите исходные данные и перейдите на вкладку
Данные → Получение данных → Из таблицы/диапазона. - В редакторе Power Query выделите колонки с датой и временем.
- Перейдите на вкладку
Добавить столбец → Пользовательский столбец. - Введите формулу:
[Дата] + [Время](где[Дата]и[Время]— названия ваших колонок). - Назначьте новому столбцу формат
Дата/время. - Нажмите
Закрыть и загрузить.
Преимущества Power Query:
- ⚡ Обработка миллионов строк без тормозов.
- 🔄 Автоматическое обновление при изменении исходных данных.
- 📂 Возможность объединять данные из нескольких файлов.
⚠️ Внимание: При импорте данных из CSV убедитесь, что колонки с датой/временем распознаны какДата/Время, а не как текст. В противном случае Power Query не сможет их сложить.
Метод 5: Макрос VBA для автоматизации
Если вам нужно регулярно объединять дату и время, напишите простой макрос. Откройте редактор VBA (Alt + F11) и вставьте следующий код в модуль:
Sub CombineDateTime()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim lastRow As Long
' Укажите имя листа и диапазон с данными
Set ws = ThisWorkbook.Sheets("Лист1")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Set rng = ws.Range("A1:B" & lastRow)
' Добавление столбца с объединённой датой/временем
ws.Range("C1").Value = "Дата и время"
For Each cell In rng.Columns(1).Cells
If cell.Row > 1 Then ' Пропускаем заголовок
cell.Offset(0, 2).Value = cell.Value + cell.Offset(0, 1).Value
cell.Offset(0, 2).NumberFormat = "dd.mm.yyyy hh:mm:ss"
End If
Next cell
End Sub
Как это работает:
- 📌 Макрос берёт данные из колонок A (дата) и B (время).
- 📌 Результат записывается в колонку C с форматом
дд.мм.гггг чч:мм:сс. - 📌 Код автоматически определяет последнюю заполненную строку.
Чтобы запустить макрос, нажмите Alt + F8, выберите CombineDateTime и кликните Выполнить.
For Each ws In ThisWorkbook.Worksheets
' Ваш код для каждого листа
Next ws
-->
Распространённые ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при объединении даты и времени. Вот TOP-5 ошибок и их решения:
| Ошибка | Причина | Решение |
|---|---|---|
Результат отображается как число (например, 45412,60417) | Не применён формат Дата и время | Выделите ячейку → Формат ячеек → выберите дд.мм.гггг чч:мм |
Ошибка #ЗНАЧ! в функции ДАТАЗНАЧ | Некорректный формат текстовой даты | Проверьте разделители (точка/косая черта) и порядок дня/месяца |
Время сбрасывается на 00:00:00 | Ячейка со временем отформатирована как текст | Примените формат Время или используйте ВРЕМЗНАЧ |
Дата смещается на 4 года (например, 1904 вместо 1900) | Включён параметр Система дат 1904 (Mac) | Перейдите в Файл → Параметры → Дополнительно и снимите галочку |
| Макрос не работает | Отключены макросы или неверно указаны имена листов | Включите макросы в Файл → Параметры → Центр управления безопасностью |
Если вы работаете с данными из 1С или SAP, обратите внимание на формат временных меток — они часто содержат миллисекунды (например, 15.05.2026 14:30:00.123). В этом случае используйте формулу:
=ЦЕЛОЕ(A1) + ВРЕМЗНАЧ(ТЕКСТ(B1; "чч:мм:сс"))
FAQ: Ответы на частые вопросы
Как объединить дату и время в Google Sheets?
В Google Sheets используйте ту же логику, что и в Excel, но с английскими функциями:
=A1 + B1
Затем примените формат Date time через меню Format → Number → Date time.
Для текстового формата используйте:
=DATEVALUE(A1) + TIMEVALUE(B1)
Почему после объединения время отображается как 12:00 вместо 14:30?
Скорее всего, у вас включён 12-часовой формат времени. Чтобы исправить:
- Выделите ячейку с результатом.
- Нажмите
Ctrl + 1(или правая кнопка →Формат ячеек). - Выберите формат
13:30:55(24-часовой).
Можно ли объединить дату и время из разных книг Excel?
Да, но нужно использовать ссылки на внешние книги. Пример формулы:
=[Книга1.xlsx]Лист1!$A$1 + [Книга1.xlsx]Лист1!$B$1
Важно: Внешние ссылки обновляются только при открытии обеих книг. Для автоматического обновления используйте Power Query или VBA.
Как вычесть время из объединённой даты?
Если у вас есть временная метка (например, 15.05.2026 14:30) и нужно вычесть 2 часа, используйте:
=A1 - ВРЕМЯ(2; 0; 0)
Для вычитания дней:
=A1 - 5 (вычтет 5 дней)
Почему при копировании формулы результат не обновляется?
Проверьте два момента:
- 🔒 Включён ли в Excel
Автоматический пересчёт формул(Формулы → Вычисления → Автоматически). - 📎 Используете ли вы абсолютные ссылки (например,
$A$1вместоA1). Замените на относительные.