Вычитание времени в Excel: 5 способов с формулами и примерами

Работа с временными данными в Microsoft Excel часто становится головной болью для пользователей. Казалось бы, что может быть проще: взять два значения времени и найти разницу между ними? Но на практике даже опытные аналитики сталкиваются с ошибками формата, некорректными результатами или «магическими» числами вместо ожидаемых часов и минут. Причина кроется в том, что Excel хранит даты и время как числа, где 1 — это один день, а 0,5 — половина суток (12 часов). Эта особенность требует специальных подходов к вычитанию.

В этой статье мы разберём не только базовые операции вроде Время2 - Время1, но и нюансы работы с пересечением полуночи, отрицательными значениями, а также преобразованием результата в удобный для анализа формат. Вы узнаете, почему иногда вместо 2:30 Excel показывает 0,10416..., как исправить ошибку ###### в ячейке с временем, и какие функции (РАЗНДАТ, ВРЕМЯ, ТЕКСТ) упростят ваши расчёты. Особое внимание уделим практическим примерам: расчёт рабочего времени сотрудников, длительности задач или разницы между таймкодами видео.

Если вы когда-нибудь получали в результате вычитания время в формате 43890,125 вместо привычных 3:00, эта статья поможет разобраться в причинах и исправить ошибки. Мы также рассмотрим альтернативные инструменты — Power Query и VBA — для автоматизации работы с большими массивами временных данных.

1. Базовый метод: простое вычитание времени

Самый очевидный способ найти разницу между двумя временными метками — вычесть одно значение из другого. Например, если в ячейке A1 у вас время начала события 09:30, а в B1 — время окончания 17:45, формула будет выглядеть так:

=B1-A1

В результате Excel вернёт 8:15 — именно столько времени прошло между двумя метками. Но здесь есть подводные камни:

  • 🔹 Формат ячейки. Если результат отображается как число (например, 0,34375), значит, у ячейки с формулой установлен общий формат. Исправьте его на Время через меню Главная → Формат → Формат ячеек.
  • 🔹 Отрицательные значения. Если вычесть большее время из меньшего (например, 17:45 - 09:30 даст ошибку, если поменять местами), Excel покажет ######. Решение — использовать функцию АБС или настроить отображение отрицательного времени.
  • 🔹 Пересечение полуночи. Формула =B1-A1 не сработает, если событие началось в 22:00, а закончилось в 02:00 следующего дня. Для таких случаев нужны другие подходы (см. раздел 3).

Чтобы избежать ошибок, всегда проверяйте формат ячеек с исходными данными. Они должны быть отформатированы как Время, а не как Текст или Общий. Если Excel воспринимает 09:30 как текст, используйте функцию ВРЕМЯЗНАЧ для преобразования:

=ВРЕМЯЗНАЧ("09:30")
📊 Как часто вы работаете с временными данными в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

2. Преобразование результата в часы, минуты или секунды

Часто разницу между временными метками нужно представить не в формате чч:мм, а в виде десятичного числа (например, для дальнейших расчётов оплаты труда). Для этого используйте умножение на количество секунд/минут/часов в сутках:

  • 🕒 В часы: = (B1-A1) * 24
  • ⏱️ В минуты: = (B1-A1) * 1440 (24 часа × 60 минут)
  • В секунды: = (B1-A1) * 86400 (24 × 60 × 60)

Пример: если разница между временем составляет 2:30, то:

  • В часах: 2,5
  • В минутах: 150
  • В секундах: 9000

Для обратного преобразования (например, если у вас есть количество минут, и нужно получить формат чч:мм) используйте функцию ВРЕМЯ:

=ВРЕМЯ(0; 150; 0)
Где 150 — количество минут.

Критическая ошибка: если вы умножаете разницу времени на 24, но получаете результат вроде 1,0416 вместо 2,5, проверьте формат исходных ячеек. Скорее всего, Excel воспринимает ваши данные как текст, а не как временные значения.

3. Вычитание времени с пересечением полуночи

Классическая формула =B1-A1 даст сбой, если событие начинается вечером одного дня и заканчивается утром следующего. Например, ночная смена с 22:00 до 06:00 вернёт отрицательное значение или ошибку. Решить проблему можно двумя способами:

Способ 1. Использование функции ЕСЛИ:

=ЕСЛИ(B1
Логика: если время окончания (B1) меньше времени начала (A1), прибавляем 1 (что равно 24 часам) к разнице.

Способ 2. Функция МОД (для циклов более 24 часов):

=МОД(B1-A1; 1)
Эта формула вернёт остаток от деления разницы на 1 (24 часа), что полезно для расчётов длительности событий, длящихся несколько суток.
Время начала Время окончания Формула Результат
22:00 06:00 =ЕСЛИ(B1 8:00
18:30 01:15 =МОД(B1-A1; 1) 6:45
23:50 00:10 Любая из формул 0:20
Почему функция МОД работает с временем?

Функция МОД возвращает остаток от деления. Поскольку Excel хранит время как долю суток (где 1 = 24 часа), деление разницы на 1 даёт остаток в формате времени, игнорируя полные сутки. Например, разница в 26 часов (1,083...) после МОД(1,083; 1) станет 0,083 (2 часа).

4. Работа с датами и временем одновременно

Если ваши данные включают и дату, и время (например, 15.05.2026 14:30), используйте функцию РАЗНДАТ. Она позволяет вычислять разницу в днях, часах, минутах или секундах между двумя датами/временными метками.

Синтаксис:

=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)

Аргумент единица_измерения может принимать значения:

  • 📅 "d" — разница в днях
  • "h" — разница в часах
  • ⏱️ "m" — разница в минутах
  • "s" — разница в секундах

Пример: если в A1 записано 15.05.2026 09:00, а в B116.05.2026 17:30, то:

  • =РАЗНДАТ(A1; B1; "d") вернёт 1 (полных дней)
  • =РАЗНДАТ(A1; B1; "h") вернёт 32,5 (часов)
⚠️ Внимание: Функция РАЗНДАТ недоступна в Excel Online и некоторых локализованных версиях. Альтернатива — вычитание с последующим умножением на 24/1440/86400 (как в разделе 2).

5. Отрицательное время: как избежать ошибок

Excel по умолчанию не отображает отрицательное время (например, если из 08:00 вычесть 10:00). Вместо этого вы увидите ######. Решить проблему можно тремя способами:

Способ 1. Изменить формат ячейки:

  1. Выделите ячейку с результатом.
  2. Нажмите Ctrl+1 (или Главная → Формат → Формат ячеек).
  3. Выберите категорию Время и укажите формат 37:30:55 (вручную введите его в поле Тип).

Способ 2. Использовать функцию АБС:

=АБС(B1-A1)
Этот метод вернёт абсолютную разницу, но не покажет направление (опоздание или уход раньше).

Способ 3. Настройка системы дат 1904 года:

  1. Перейдите в Файл → Параметры → Дополнительно.
  2. Поставьте галочку напротив Использовать систему дат 1904 года.
  3. Перезапустите Excel.
⚠️ Внимание: Этот способ повлияет на все книги Excel на вашем компьютере. После изменения все даты сдвинутся на 4 года (например, 01.01.2026 станет 01.01.2028). Используйте его только если работаете исключительно с временными разницами.

Проверьте формат ячеек с исходными данными|Используйте функцию АБС для абсолютных значений|Настройте пользовательский формат 37:30:55|Сохраните резервную копию книги перед изменением системы дат-->

6. Продвинутые приёмы: Power Query и VBA

Для обработки больших массивов временных данных (например, логов сервера или данных с датчиков) ручные формулы становятся неэффективными. В таких случаях поможет Power Query или VBA.

Power Query (Excel 2016+):

  1. Импортируйте данные в Power Query через Данные → Получить данные.
  2. Выделите столбцы с временем, перейдите на вкладку Преобразовать и выберите Тип данных → Время.
  3. Добавьте пользовательский столбец с формулой:
    = [Конечное время] - [Начальное время]
  4. При необходимости преобразуйте результат в часы/минуты, умножив на 24/1440.

VBA (для автоматизации): Скрипт ниже рассчитывает разницу между временем в столбцах A и B, записывая результат в столбец C в формате чч:мм:сс:

Sub TimeDifference()

Dim ws As Worksheet

Dim lastRow As Long

Dim i As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

For i = 2 To lastRow 'Предполагаем, что 1-я строка — заголовок

ws.Cells(i, 3).Value = ws.Cells(i, 2).Value - ws.Cells(i, 1).Value

ws.Cells(i, 3).NumberFormat = "hh:mm:ss"

Next i

End Sub

Чтобы запустить макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel и запустите макрос через Вид → Макросы.

7. Типичные ошибки и как их исправить

Даже опытные пользователи Excel сталкиваются с ошибками при работе со временем. Вот самые распространённые из них и способы решения:

Ошибка Причина Решение
###### в ячейке Отрицательное время или нехватка ширины столбца Используйте АБС или настройте формат 37:30:55
Результат в виде 0,34722... Ячейка отформатирована как Общий, а не Время Измените формат на Время или умножьте на 24 для часов
Некорректная разница при пересечении полуночи Формула не учитывает переход на новые сутки Используйте ЕСЛИ или МОД (см. раздел 3)
Функция РАЗНДАТ не работает Локализованная версия Excel или Excel Online Замените на (B1-A1)*24 для часов

Ещё одна частая проблема — округление времени. Например, если в исходных данных время указано с точностью до секунды (09:30:15), а вам нужны только часы и минуты, используйте функцию ОКРУГЛ:

=ОКРУГЛ(B1-A1; "0:01")
Эта формула округлит результат до ближайшей минуты.

FAQ: Ответы на частые вопросы

Как вычесть время, если в ячейке текст (например, "9 часов 30 минут")?

Используйте комбинацию функций ПСТР, НАЙТИ и ВРЕМЯ:

=ВРЕМЯ(0; ПСТР(A1; НАЙТИ("часов"; A1)-2; 2); ПСТР(A1; НАЙТИ("минут"; A1)-2; 2))
Для текста "9 часов 30 минут" формула вернёт 09:30.
Почему при вычитании времени получается дата "30.12.1899"?

Excel интерпретирует ваши данные как дату, а не время. Проверьте формат ячеек: он должен быть Время, а не Дата. Если исходные данные — текст, используйте ВРЕМЯЗНАЧ.

Как посчитать сумму временных значений (например, общую длительность задач)?

Используйте функцию СУММ, но убедитесь, что ячейки отформатированы как Время. Если сумма превышает 24 часа, примените пользовательский формат [ч]:мм:сс.

Можно ли вычесть время с учётом часовых поясов?

Excel не поддерживает часовые пояса напрямую. Преобразуйте время в UTC (универсальное координированное время) вручную, добавляя/вычитая разницу в часах, или используйте надстройки вроде Kutools for Excel.

Как автоматически заполнить время окончания, если известна длительность?

Добавьте длительность (в формате времени) к начальному времени:

=A1 + ВРЕМЯ(2; 30; 0)
Где A1 — начальное время, а ВРЕМЯ(2; 30; 0) — длительность 2 часа 30 минут.