Работа с временны́ми интервалами в Microsoft Excel — одна из самых востребованных задач среди бухгалтеров, HR-специалистов и менеджеров проектов. Нужно ли посчитать отработанные часы сотрудника за месяц, определить продолжительность проекта или вычислить ночные часы для оплаты по повышенному тарифу — без точных формул не обойтись. Проблема в том, что Excel хранит даты и время в виде чисел, а неправильное форматирование ячеек или выбор функции часто приводит к ошибкам вроде ###### или некорректных отрицательных значений.
В этой статье разберём 5 проверенных способов подсчёта часов между датами — от элементарного вычитания до расчётов с учётом рабочих/выходных дней, праздников и перерывов. Особое внимание уделим типичным ошибкам, из-за которых формулы возвращают неверные результаты, и покажем, как их избежать. Все примеры адаптированы для Excel 2016–2023 и Excel Online, с учётом особенностей российского календаря.
Если вам нужно быстро посчитать разницу между двумя датами в часах — достаточно вычесть одну из другой и применить формат [ч]:мм. Но что делать, если требуется исключить обеденные перерывы, учитывать только рабочие дни или разделить время на дневные/ночные смены? Для этого понадобятся комбинации функций ЕСЛИ, ЧАС, РАБДЕНЬ.МЕЖД и даже ВПР для сложных табелей. Мы разложим каждый случай по полочкам — с формулами, которые можно скопировать и адаптировать под свои данные.
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:30 | 15.05.2026 18:45 | =B2-A2 | 9:15 |
| 15.05.2026 22:00 | 16.05.2026 06:00 | =B2-A2 | 8: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 — продолжительность рабочего дня в часах.
☑️ Подготовка данных для РАБДЕНЬ.МЕЖД
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)
Разберём логику:
- Проверяем, попадает ли интервал в ночное время (
ЧАС>=22илиЧАС<6). - Если дата начала позднее 22:00, а окончание раньше 06:00 — весь интервал ночной.
- Если интервал пересекает 00:00, разбиваем его на две части: с 22:00 до 00:00 и с 00:00 до 06:00.
Критическая деталь: функция 00 из времени?:Потому что Excel хранит даты как числа (1 = 1 день), и вычитание времени без учёта даты приведёт к ошибкам на интервалах, пересекающих полночь. Например, ДАТАГОД используется для корректного переноса времени через полночь. Без неё формула будет ошибаться на интервалах, пересекающих 00:00.
Почему нельзя просто вычесть 22
05.05.2026 23:00 - 22:00 вернёт 1:00, а не 25:00 (если считать от предыдущего дня).
4. Учёт перерывов: вычитание нерабочего времени
В табелях учёта рабочего времени часто требуется исключать перерывы (например, обед с 13:00 до 14:00). Для этого:
- Сначала рассчитайте общую разницу между временем начала и окончания.
- Затем вычтите продолжительность перерыва, если он попадает в интервал.
Формула с учётом перерыва:
=МАКС((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) или индивидуальные правила учёта времени, универсальных формул не существует. В таких случаях:
- Создайте таблицу смен с указанием начала/конца каждой смены и её типа (день/ночь).
- Используйте
ВПРилиИНДЕКС/ПОИСКПОЗдля определения типа смены по дате. - Применяйте
СУММЕСЛИМНдля подсчёта часов по критериям (например, только ночные смены в январе).
Пример структуры таблицы смен:
| Дата | Начало смены | Конец смены | Тип | Оплата (%) |
|---|---|---|---|---|
| 01.05.2026 | 08:00 | 20:00 | День | 100 |
| 02.05.2026 | 20:00 | 08: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
Для России актуальный список праздников можно скачать на сайте КонсультантПлюс.
Можно ли автоматически подсвечивать ночные часы в табеле?
Да, с помощью условного форматирования:
- Выделите диапазон с временем.
- Перейдите в
Главная → Условное форматирование → Создать правило → Использовать формулу. - Введите формулу:
=ИЛИ(ЧАС(A1)>=22; ЧАС(A1)<6). - Задайте цвет заливки (например, синий) и нажмите
ОК.
Как посчитать часы за конкретный месяц, исключая выходные?
Используйте комбинацию РАБДЕНЬ.МЕЖД и ЕМЕСЯЦ:
=РАБДЕНЬ.МЕЖД(ДАТА(2026;5;1); ЕМЕСЯЦ(ДАТА(2026;5;1);0); D2:D10) * 8
Где D2:D10 — список праздников, а 8 — длительность рабочего дня.