Как посчитать разницу между датами и временем в Excel в часах: формулы и примеры

Расчёт разницы между двумя датами или временными метками в Microsoft Excel — одна из самых востребованных задач при работе с отчётами, графиками смен, тайм-трекингом или анализом временных интервалов. Чаще всего пользователям нужно получить результат не в днях, а именно в часах, минутах или даже секундах. Но здесь начинаются сложности: Excel хранит даты как числа, а время — как доли суток, и без знания правильных формул легко получить некорректный результат.

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

Особое внимание уделим нуансам форматирования ячеек — главной причине, по которой даже правильная формула может выдавать неожиданные результаты. А в конце статьи вы найдёте готовые шаблоны для скачивания и ответы на частые вопросы.

📊 Как часто вы работаете с датами и временем в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Почему Excel неправильно считает часы: разбираемся с форматами

Перед тем как переходить к формулам, важно понять, как Excel хранит даты и время. В программе каждая дата — это число, где 1 соответствует 1 января 1900 года, а время — дробная часть этого числа. Например:

  • 📅 01.01.1900 00:00 = 1
  • 🕒 01.01.1900 12:00 = 1,5 (половина суток)
  • 📅 02.01.1900 00:00 = 2

Когда вы вычитаете одну дату из другой, Excel возвращает разницу в днях. Чтобы перевести её в часы, нужно умножить результат на 24. Но здесь кроется первая ловушка: если ячейка с результатом отформатирована как Общий или Дата, вы увидите либо дробное число, либо вовсе ошибку.

Пример ошибки: Формула =B2-A2 для дат 05.05.2026 14:00 и 04.05.2026 10:00 вернёт 1,166666667 (28 часов в долях суток). Без правильного формата вы не поймёте, что это за число.

Способ 1: Простая разница в часах (без учёта рабочего времени)

Самый быстрый метод — вычесть одну дату из другой и умножить на 24. Подходит для расчёта полной разницы между двумя метками времени, например, длительности задачи или интервала между событиями.

Формула:

= (Конечная_дата - Начальная_дата) * 24

Пример: Если в ячейке A2 записано 03.05.2026 08:30, а в B204.05.2026 17:45, формула будет:

= (B2 - A2) * 24

Результат: 33,25 часов (33 часа и 15 минут).

⚠️

Внимание: Если конечная дата раньше начальной, Excel вернёт отрицательное значение. Чтобы избежать этого, используйте функцию =ABS():
=ABS((B2 - A2) * 24)

Убедитесь, что обе даты в одном формате (дата + время)|Проверьте, что в ячейках нет текста (например, "с 10:00")|Настройте формат результата на Числовой или Дробный-->

Способ 2: Разница с учётом только рабочих часов (исключаем ночное время)

Допустим, вам нужно посчитать, сколько времени прошло между двумя метками, но учитывать только рабочие часы (например, с 9:00 до 18:00). Для этого потребуется комбинация функций ЕСЛИ, МАКС и МИН.

Формула:

= (МИН(Конечное_время; 18:00) - МАКС(Начальное_время; 9:00)) * 24

Разбор:

  • 🕘 МАКС(Начальное_время; 9:00) — если задача началась до 9:00, учитываем с 9:00.
  • 🕒 МИН(Конечное_время; 18:00) — если задача закончилась после 18:00, учитываем до 18:00.
  • ⏱️ Умножение на 24 переводит разницу в часы.

Пример: Задача началась 03.05.2026 07:30 и закончилась 03.05.2026 19:15. Рабочее время — с 9:00 до 18:00.

= (МИН("19:15"; "18:00") - МАКС("07:30"; "9:00")) * 24

Результат: 9 часов (с 9:00 до 18:00).

Что если рабочий день с перерывом?

Если в рабочем графике есть перерыв (например, с 13:00 до 14:00), формула усложняется:

= (МИН(Конечное_время; 13:00) - МАКС(Начальное_время; 9:00) + МИН(Конечное_время; 18:00) - МАКС(Конечное_время; 14:00)) * 24

Эта формула учитывает два интервала: 9:00–13:00 и 14:00–18:00.

Способ 3: Разница в часах, минутах и секундах (раздельный вывод)

Иногда требуется вывести разницу не только в часах, но и отдельно в минутах и секундах. Для этого используем функции ЧАС, МИНУТЫ и СЕКУНДЫ в комбинации с ОТБР (округление).

Формулы:

Компонент Формула Пример результата
Часы =ОТБР((B2-A2)*24; 0) 24
Минуты =ОТБР((B2-A2)*24*60; 0) - ОТБР((B2-A2)*24; 0)*60 30
Секунды =ОТБР((B2-A2)*24*3600; 0) - ОТБР((B2-A2)*24*60; 0)*60 15

⚠️

Внимание: Если разница между датами превышает 24 часа, формулы для минут и секунд могут давать сбой. В этом случае используйте функцию =ЧАС(B2-A2) для часов, но помните, что она вернёт только целую часть (например, для 28 часов покажет 4, а не 28).

Критический нюанс: функции ЧАС/МИНУТЫ/СЕКУНДЫ работают только с временными интервалами до 24 часов. Для больших интервалов используйте метод из Способа 1 с округлением.

Способ 4: Разница между датами с учётом выходных и праздников

Для расчёта рабочего времени с исключением выходных (суббота, воскресенье) и праздников потребуется функция ЧИСТРАБДНИ (NETWORKDAYS в английской версии). Она считает количество полных рабочих дней между датами, но не учитывает время. Чтобы получить часы, комбинируем её с проверкой времени.

Формула для рабочих часов (без учёта ночного времени):

= (ЧИСТРАБДНИ(A2; B2) - 1) * 9 + ЕСЛИ(ЧИСТРАБДНИ(A2; B2)>0; МИН(ВРЕМЯ(18;0;0); B2-ЦЕЛОЕ(B2)) - МАКС(ВРЕМЯ(9;0;0); A2-ЦЕЛОЕ(A2)); 0)

Разбор:

  • 📅 ЧИСТРАБДНИ(A2; B2) - 1 — количество полных рабочих дней между датами (минус 1, чтобы не учитывать день окончания).
  • МИН(ВРЕМЯ(18;0;0); B2-ЦЕЛОЕ(B2)) — время окончания задачи, но не позже 18:00.
  • 🕘 МАКС(ВРЕМЯ(9;0;0); A2-ЦЕЛОЕ(A2)) — время начала задачи, но не раньше 9:00.

Пример: Задача началась 03.05.2026 14:00 (пятница) и закончилась 07.05.2026 10:00 (вторник). Праздников нет.

= (ЧИСТРАБДНИ("03.05.2026"; "07.05.2026") - 1)  9 + (МИН(ВРЕМЯ(18;0;0); "10:00") - МАКС(ВРЕМЯ(9;0;0); "14:00"))  24

Результат: 21 часов (пятница 14:00–18:00 + понедельник 9:00–18:00 + вторник 9:00–10:00).

Способ 5: Автоматический расчёт для больших таблиц (Power Query)

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

Алгоритм:

  1. Выделите таблицу с данными → вкладка ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец: Добавить столбецВычислить разницу.
  3. Выберите столбцы с начальной и конечной датой, укажите операцию Вычитание.
  4. Добавьте ещё один столбец с формулой = [Разница] * 24 для перевода в часы.
  5. Нажмите Закрыть и загрузить.

Преимущества метода:

  • ⚡ Быстро обрабатывает десятки тысяч строк.
  • 🔄 Автоматически обновляет результаты при изменении исходных данных.
  • 📊 Позволяет добавлять дополнительные вычисления (например, округление или категоризацию).

⚠️

Внимание: Power Query может неправильно интерпретировать форматы даты, если они записаны как текст (например, "01.05.2026 10:00" без преобразования в дату). Перед загрузкой проверьте формат столбцов в Excel: выделите данные → Формат ячеекДата.

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

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

Ошибка Причина Решение
Формула возвращает ###### Слишком большое число для формата ячейки или отрицательная дата (до 1900 года). Расширьте столбец или проверьте корректность дат. Для дат до 1900 года используйте =ДАТАЗНАЧ().
Результат в формате даты (например, 01.01.1900) Ячейка с результатом отформатирована как Дата. Измените формат на Числовой или Общий.
Некорректное количество часов (например, 1.5 вместо 36) Забыли умножить разницу на 24. Добавьте *24 к формуле.
Ошибка #ЗНАЧ! В ячейках текст вместо даты/времени. Используйте =ДАТАЗНАЧ() или =ВРЕМЗНАЧ() для преобразования текста в дату.

=ДАТАЗНАЧ(ЛЕВСИМВ(A2;10)) + ВРЕМЗНАЧ(ПРАВСИМВ(A2;5))

где A2 — ячейка с текстовой датой.-->

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

Как посчитать разницу между временем без даты (например, 14:30 и 17:45)?

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

= (B2 - A2) * 24

Если время записано как текст, преобразуйте его с помощью =ВРЕМЗНАЧ().

Почему Excel показывает 25 часов вместо 1 суток и 1 часа?

Excel считает разницу в часах как непрерывный интервал. Чтобы вывести результат в формате 1 день 1 час, используйте:

=ЦЕЛОЕ(B2-A2) & " дн. " & ТЕКСТ((B2-A2)-ЦЕЛОЕ(B2-A2); "[ч]:мм")

Как посчитать разницу в часах между текущим временем и датой в ячейке?

Используйте функцию СЕГОДНЯ() для даты и ТДАТА() для даты+времени:

= (ТДАТА() - A2) * 24

Для автоматического обновления нажмите F9.

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

Excel не поддерживает часовые пояса напрямую. Преобразуйте время к одному поясу перед расчётом:

= (B2 + ВРЕМЯ(3;0;0) - (A2 + ВРЕМЯ(2;0;0))) * 24

где +ВРЕМЯ(3;0;0) — сдвиг на +3 часа для второй даты, +ВРЕМЯ(2;0;0) — для первой.

Как округлить результат до целых часов или до 15 минут?

Используйте функции ОКРУГЛ, ОКРУГЛВВЕРХ или ОКРУГЛВНИЗ:

  • До целых часов: =ОКРУГЛ((B2-A2)*24; 0)
  • До 15 минут: =ОКРУГЛ((B2-A2)*24*4; 0)/4