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

Работа с временны́ми интервалами в Microsoft Excel — одна из самых востребованных задач среди бухгалтеров, HR-специалистов и менеджеров проектов. Нужно ли посчитать отработанные часы сотрудника за месяц, определить продолжительность проекта или вычислить ночные часы для оплаты по повышенному тарифу — без точных формул не обойтись. Проблема в том, что Excel хранит даты и время в виде чисел, а неправильное форматирование ячеек или выбор функции часто приводит к ошибкам вроде ###### или некорректных отрицательных значений.

В этой статье разберём 5 проверенных способов подсчёта часов между датами — от элементарного вычитания до расчётов с учётом рабочих/выходных дней, праздников и перерывов. Особое внимание уделим типичным ошибкам, из-за которых формулы возвращают неверные результаты, и покажем, как их избежать. Все примеры адаптированы для Excel 2016–2023 и Excel Online, с учётом особенностей российского календаря.

Если вам нужно быстро посчитать разницу между двумя датами в часах — достаточно вычесть одну из другой и применить формат [ч]:мм. Но что делать, если требуется исключить обеденные перерывы, учитывать только рабочие дни или разделить время на дневные/ночные смены? Для этого понадобятся комбинации функций ЕСЛИ, ЧАС, РАБДЕНЬ.МЕЖД и даже ВПР для сложных табелей. Мы разложим каждый случай по полочкам — с формулами, которые можно скопировать и адаптировать под свои данные.

📊 Для чего вам чаще всего нужно считать часы в Excel?
Для табеля рабочего времени
Для управления проектами
Для расчёта оплаты труда
Для личного планирования
Другое

1. Базовый расчёт: разница между двумя датами в часах

Начнём с самого простого — вычисления количества часов между двумя временны́ми метками. Предположим, у вас есть дата и время начала события в ячейке A2 (например, 15.05.2026 09:30), а время окончания — в B2 (15.05.2026 18:45). Чтобы найти разницу:

Формула:

=B2-A2

Затем примените к ячейке с результатом пользовательский формат [ч]:мм (через Формат ячеек → Число → Все форматы). Это позволит корректно отобразить значения больше 24 часов.

⚠️

Внимание: Если в ячейках с датами хранится текст (например, после импорта из CSV), Excel вернёт ошибку #ЗНАЧ!. Преобразуйте данные в даты с помощью функции ДАТАЗНАЧ или инструмента Текст по столбцам.

Пример результата для интервала с 09:30 до 18:45:

НачалоКонецФормулаРезультат
15.05.2026 09:3015.05.2026 18:45=B2-A29:15
15.05.2026 22:0016.05.2026 06:00=B2-A28:00

Если разница превышает 24 часа (например, между 15.05.2026 09:00 и 17.05.2026 10:00), стандартный формат времени покажет только остаток от деления на 24 (1:00 вместо 49:00). Используйте формат [ч]:мм, чтобы увидеть полное количество часов.

2. Учёт только рабочих дней: функция РАБДЕНЬ.МЕЖД

Когда нужно посчитать часы только по рабочим дням (например, для табеля учёта времени), базового вычитания недостаточно. Здесь поможет функция РАБДЕНЬ.МЕЖД, которая игнорирует выходные (по умолчанию — суббота и воскресенье).

Формула для рабочих дней:

=РАБДЕНЬ.МЕЖД(A2; B2; [праздники]) * 24

Где:

  • 📅 A2 — дата начала (включительно).
  • 📅 B2 — дата окончания (включительно).
  • 🎉 [праздники] — необязательный диапазон с датами праздников (например, D2:D10).

⚠️

Внимание: Функция возвращает количество полных рабочих дней, поэтому результат умножается на 24 для перевода в часы. Если нужно учитывать часы внутри одного дня (например, с 9:00 до 17:00), комбинируйте РАБДЕНЬ.МЕЖД с проверкой времени через ЕСЛИ.

Пример с учётом российских праздников (1–8 января 2026 года):

=РАБДЕНЬ.МЕЖД("01.01.2026"; "15.01.2026"; D2:D9) * 8

Где D2:D9 — список праздничных дат, а 8 — продолжительность рабочего дня в часах.

☑️ Подготовка данных для РАБДЕНЬ.МЕЖД

Выполнено: 0 / 4

3. Расчёт ночных часов (с 22:00 до 06:00)

Для оплаты ночных смен по ТК РФ (ст. 154) требуется выделять часы, отработанные с 22:00 до 06:00. Здесь понадобится комбинация функций ЕСЛИ, ЧАС и МИНУТЫ, чтобы разделить интервал на дневные и ночные часы.

Формула для ночных часов:

=ЕСЛИ(ИЛИ(ЧАС(A2)>=22; ЧАС(B2)<6);

ЕСЛИ(ЧАС(A2)>=22;

ЕСЛИ(ЧАС(B2)<6; (B2-A2)*24;

(ДАТАГОД(B2;ЧАС(B2);МИНУТЫ(B2)) - ДАТАГОД(A2;22;0))*24 + (ДАТАГОД(A2;6;0) - ДАТАГОД(A2;ЧАС(A2);МИНУТЫ(A2)))*24);

(ДАТАГОД(B2;6;0) - ДАТАГОД(B2;ЧАС(B2);МИНУТЫ(B2)))*24);

0)

Разберём логику:

  1. Проверяем, попадает ли интервал в ночное время (ЧАС>=22 или ЧАС<6).
  2. Если дата начала позднее 22:00, а окончание раньше 06:00 — весь интервал ночной.
  3. Если интервал пересекает 00:00, разбиваем его на две части: с 22:00 до 00:00 и с 00:00 до 06:00.

Критическая деталь: функция ДАТАГОД используется для корректного переноса времени через полночь. Без неё формула будет ошибаться на интервалах, пересекающих 00:00.

Почему нельзя просто вычесть 22

00 из времени?:Потому что Excel хранит даты как числа (1 = 1 день), и вычитание времени без учёта даты приведёт к ошибкам на интервалах, пересекающих полночь. Например, 05.05.2026 23:00 - 22:00 вернёт 1:00, а не 25:00 (если считать от предыдущего дня).

4. Учёт перерывов: вычитание нерабочего времени

В табелях учёта рабочего времени часто требуется исключать перерывы (например, обед с 13:00 до 14:00). Для этого:

  1. Сначала рассчитайте общую разницу между временем начала и окончания.
  2. Затем вычтите продолжительность перерыва, если он попадает в интервал.

Формула с учётом перерыва:

=МАКС((B2-A2)*24 - ЕСЛИ(И(A2<=ВРЕМЯ(14;0;0); B2>=ВРЕМЯ(13;0;0)); 1; 0); 0)

Где:

  • 🕒 ВРЕМЯ(13;0;0) — начало перерыва.
  • 🕒 ВРЕМЯ(14;0;0) — конец перерыва.
  • 🔢 1 — длительность перерыва в часах.

⚠️

Внимание: Если перерыв выпадает на границу интервала (например, смена заканчивается в 13:30), формула вычтет полный час. Для точного учёта используйте:
=МАКС((B2-A2)*24 - МАКС(МИН(B2;ВРЕМЯ(14;0;0)) - МАКС(A2;ВРЕМЯ(13;0;0)); 0); 0)

5. Сложные случаи: сменный график и индивидуальные правила

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

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

Пример структуры таблицы смен:

ДатаНачало сменыКонец сменыТипОплата (%)
01.05.202608:0020:00День100
02.05.202620:0008:00Ночь150
03.05.2026выходной

Формула для подсчёта ночных часов за месяц:

=СУММЕСЛИМН($C$2:$C$100; $D$2:$D$100; "Ночь"; $A$2:$A$100; ">="&ДАТА(2026;5;1); $A$2:$A$100; "<="&ДАТА(2026;5;31)) * 24

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

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

  • Некорректный формат ячеек: Если ячейка отформатирована как текст, Excel не распознаёт дату/время. Исправляйте через Формат ячеек → Дата/Время или функцию ДАТАЗНАЧ.
  • 🔄 Отрицательное время: Возникает, если в настройках Excel отключён параметр Использовать систему дат 1904 (Файл → Параметры → Дополнительно). Включите его или используйте формулу =ЕСЛИ(B2.
  • 📅 Игнорирование переходов на зимнее/летнее время: В России с 2014 года переходов нет, но если работаете с данными до 2011 года, учитывайте сдвиг на 1 час в марте/октябре.

⚠️

Внимание: Функция СЕГОДНЯ обновляется при каждом пересчёте листа. Если вам нужно зафиксировать текущую дату, используйте CTRL+; (горячие клавиши для вставки статической даты).

Для проверки корректности данных используйте функцию ЕЧИСЛО:

=ЕЧИСЛО(A2)

Она вернёт ИСТИНА, если в ячейке дата/время в числовом формате, и ЛОЖЬ — если текст.

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

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

Используйте формулу =(B2-A2)*24, где A2 и B2 — ячейки с датами. Excel автоматически подставит 00:00 для времени. Например, разница между 15.05.2026 и 17.05.2026 составит 48 часов.

Почему формула возвращает ###### вместо результата?

Это означает, что столбец слишком узкий для отображения значения. Расширьте его или примените формат [ч]:мм, если речь о большом количестве часов. Также ошибка возникает при отрицательных значениях времени — проверьте порядок вычитания (конец - начало).

Как учитывать праздничные дни в расчётах?

Создайте отдельный список праздников (например, в столбце D) и используйте его в функции РАБДЕНЬ.МЕЖД:

=РАБДЕНЬ.МЕЖД(A2; B2; D2:D10) * 8

Для России актуальный список праздников можно скачать на сайте КонсультантПлюс.

Можно ли автоматически подсвечивать ночные часы в табеле?

Да, с помощью условного форматирования:

  1. Выделите диапазон с временем.
  2. Перейдите в Главная → Условное форматирование → Создать правило → Использовать формулу.
  3. Введите формулу: =ИЛИ(ЧАС(A1)>=22; ЧАС(A1)<6).
  4. Задайте цвет заливки (например, синий) и нажмите ОК.

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

Используйте комбинацию РАБДЕНЬ.МЕЖД и ЕМЕСЯЦ:

=РАБДЕНЬ.МЕЖД(ДАТА(2026;5;1); ЕМЕСЯЦ(ДАТА(2026;5;1);0); D2:D10) * 8

Где D2:D10 — список праздников, а 8 — длительность рабочего дня.