Как правильно вычесть время в Excel: формулы, примеры и лайфхаки

Почему вычитание времени в Excel — не такая простая задача, как кажется

На первый взгляд, вычесть одно время из другого в Microsoft Excel должно быть так же просто, как и с числами. Но на практике пользователи сталкиваются с неожиданными результатами: вместо корректного интервала появляются странные числа, ошибки ###### или отрицательные значения, даже когда логически их быть не должно. Всё дело в том, что Excel хранит даты и время в виде серийных чисел, где 1 день = 1 единица, а время — это дробная часть этого числа (например, 12:00 — это 0.5). Без понимания этой логики формулы дают сбои.

Дополнительную сложность добавляет переход через полночь (например, вычитание 23:00 из 01:00), работа с датами и временем одновременно, а также региональные настройки формата ячеек. Эта статья поможет разобраться во всех нюансах — от базовых формул до продвинутых приёмов для бухгалтеров, логистов и аналитиков, которым приходится считать рабочие смены, простои или интервалы между событиями.

Базовые формулы для вычитания времени в Excel

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

=B1-A1

Но здесь есть подводные камни:

  • ⏰ Формат ячеек должен быть Время или Общий (иначе Excel воспримет значения как текст).
  • ⚠️ Если результат отрицательный (например, при вычитании 01:00 - 23:00), появится ошибка ######.
  • 📊 Для отображения интервала в часах/минутах потребуется дополнительное форматирование.

Чтобы избежать ошибок, перед вычитанием проверьте формат ячеек: выделите диапазон, нажмите Ctrl+1 (или правой кнопкой → Формат ячеек) и выберите категорию Время. Если время вводится вручную, используйте двоеточие (14:30), а не точки или запятые.

Вычитание времени с переходом через полночь

Классическая проблема: как посчитать продолжительность ночной смены, которая начинается в 22:00 и заканчивается в 06:00? Прямое вычитание (=06:00-22:00) даст ошибку, потому что Excel воспринимает это как отрицательное значение. Решений несколько:

  1. Добавить 1 день к времени окончания (если оно меньше времени начала):
    =ЕСЛИ(B1

    Здесь 1 — это 24 часа в формате Excel.

  2. Использовать функцию МОД (модуль):
    =МОД(B1-A1; 1)

    Эта формула автоматически корректирует отрицательные значения, прибавляя 24 часа.

Пример для ячеек с датами и временем (например, 20.05.2026 22:00 и 21.05.2026 06:00):

=B1-A1

В этом случае Excel сам учтёт смену даты, и результат будет корректным (8:00).

Почему формула =МОД(B1-A1;1) работает?

Функция МОД возвращает остаток от деления. В Excel 1 день = 1, поэтому МОД(отрицательное_время; 1) добавляет 24 часа к отрицательному значению, преобразуя его в положительный интервал. Например, -18:00 станет 6:00 (24 - 18).

Вычитание времени из даты и времени

Если в ячейках хранятся полные метки времени с датой (например, 15.05.2026 14:30), вычитание работает иначе. Excel воспринимает такие данные как серийные числа, где целая часть — дата, дробная — время. Например:

ЯчейкаЗначениеВнутреннее представление в Excel
A115.05.2026 09:0045428,375
B115.05.2026 17:3045428,729
C1=B1-A10,354 (или 8:30)

Чтобы вычесть только время, не затрагивая дату, используйте:

  • 🔄 Функцию ВРЕМЯ для извлечения времени:
    =ВРЕМЯ(ЧАС(B1); МИНУТЫ(B1); СЕКУНДЫ(B1)) - ВРЕМЯ(ЧАС(A1); МИНУТЫ(A1); СЕКУНДЫ(A1))
  • ⏱️ Форматирование: если результат отображается как число, примените формат [ч]:мм (для интервалов >24 часов).
📊 Как часто вам приходится работать с датой и временем в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда

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

По умолчанию Excel отображает разницу во времени в формате ч:мм. Но часто требуется получить результат в часах с десятичной частью (например, для табеля рабочего времени) или в минутах/секундах (для анализа производительности). Вот как это сделать:

  • 🕒 Часы с дробью (например, 8,5 часов вместо 8:30):
    = (B1-A1)*24

    Умножение на 24 преобразует дробную часть дня в часы.

  • ⏲️ Минуты (например, 510 минут вместо 8:30):
    = (B1-A1)*1440

    1440 — количество минут в сутках (24×60).

  • ⏱️ Секунды (например, 30600 секунд вместо 8:30):
    = (B1-A1)*86400

    86400 — количество секунд в сутках (24×60×60).

Если результат отображается как дата (например, 31.12.1899), измените формат ячейки на Общий или Числовой. Для округления используйте функции ОКРУГЛ или ЦЕЛОЕ.

Убедитесь, что ячейки с временем имеют формат Время или Дата|

Проверьте, что в формуле нет лишних скобок или точек с запятой|

Примените к результирующей ячейке формат Общий для чисел или [ч]:мм для интервалов|

Сравните результат с ручным расчётом (например, 8:30 = 8,5 часов)-->

Типичные ошибки и как их избежать

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

⚠️ Внимание: Если после вычитания времени результат отображается как ######, это означает, что ширина столбца недостаточна или результат отрицательный. Растяните столбец или используйте формулу с МОД.
ОшибкаПричинаРешение
######Отрицательное время или узкий столбецИспользуйте =МОД(B1-A1;1) или расширьте столбец
Некорректное число (например, 0,375)Неверный формат ячейкиПримените формат Время или [ч]:мм
Дата 30.12.1899 или 31.12.1899Excel интерпретирует время как датуУмножьте результат на 24/1440/86400 для часов/минут/секунд
#ЗНАЧ!Ячейка содержит текст вместо времениПроверьте формат данных с помощью ЕТЕКСТ или ТИП.ОШИБКИ

Ещё одна частая проблема — региональные настройки. В российской версии Excel в качестве разделителя времени используется двоеточие (:), а в некоторых европейских версиях — точка с запятой (;). Если формула не работает, проверьте разделители в настройках (Файл → Параметры → Дополнительно → Разделители).

Продвинутые приёмы: вычитание времени с учётом рабочих дней и праздников

Для расчёта рабочего времени с исключением выходных и праздников стандартных формул недостаточно. Здесь поможет комбинация функций:

  1. Функция РАБДЕНЬ для учёта только рабочих дней:
    =РАБДЕНЬ(дата_начала; дни_между_датами; [праздники])

    Например, чтобы посчитать количество рабочих дней между двумя датами:

  2. Вычитание времени с учётом рабочего графика (например, с 9:00 до 18:00):
    =ЕСЛИ(И(ЧАС(A1)>=9; ЧАС(A1)<18); B1-A1; 0)

    Эта формула учитывает только часы в интервале 9:00–18:00.

Для сложных расчётов (например, ночные смены с перерывами) создайте вспомогательную таблицу с графиком работы и используйте функции ВПР или ИНДЕКС/ПОИСКПОЗ для проверки попадания времени в рабочий интервал.

Автоматизация: макросы для вычитания времени

Если вам регулярно приходится вычитать время по одним и тем же правилам (например, для табеля учёта рабочего времени), имеет смысл записать макрос. Вот простой пример макроса, который вычитает время из двух выделенных столбцов и выводит результат в часах:

Sub ВычестьВремя()

Dim rng As Range

For Each rng In Selection

If rng.Column Mod 3 = 1 Then

rng.Offset(0, 2).Value = (rng.Offset(0, 1).Value - rng.Value) * 24

rng.Offset(0, 2).NumberFormat = "0.00"

End If

Next rng

End Sub

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

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

Результат появится в третьем столбце в формате часов с двумя знаками после запятой.

⚠️ Внимание: Перед запуском макросов убедитесь, что в настройках безопасности Excel разрешено выполнение скриптов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов). В противном случае макрос не сработает.

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

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

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

=ВРЕМЯ(0; ПСТР(A1; НАЙТИ("часов"; A1)-2; 2); ПСТР(A1; НАЙТИ("минут"; A1)-2; 2))

Для надёжности добавьте проверку на ошибки с ЕОШИБКА.

Почему при вычитании времени получается дата 30.12.1899?

Excel хранит даты начиная с 1 января 1900 (это день 1). Время без даты он интерпретирует как дробную часть дня, и при преобразовании в число может появиться эта дата. Чтобы исправить:

  • Примените к ячейке формат Время или [ч]:мм.
  • Умножьте результат на 24, чтобы получить часы.
Как посчитать сумму времени (например, общую продолжительность смен за месяц)?

Используйте функцию СУММ и примените к результирующей ячейке формат [ч]:мм:

=СУММ(A1:A10)

Если сумма превышает 24 часа, стандартный формат ч:мм сбросится на 0. Формат [ч]:мм покажет полное количество часов.

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

Excel не поддерживает часовые пояса напрямую, но вы можете:

  1. Добавить/вычесть разницу в часах вручную (например, для Москвы и Нью-Йорка это 7 часов зимой).
  2. Использовать надстройку Power Query для преобразования времени с учётом часовых поясов.

Пример формулы для корректировки времени на +3 часа:
=B1 + ВРЕМЯ(3; 0; 0)

Как вычесть время с миллисекундами?

Excel поддерживает миллисекунды в формате времени. Введите время с точкой (например, 14:30:15.500) и используйте стандартное вычитание. Для отображения миллисекунд примените пользовательский формат:

  1. Выделите ячейку → Формат ячеек → Число → (все форматы).
  2. Введите формат ч:мм:сс.000.