Расчет рабочего времени в Excel: от простой разницы до сложных смен

Иван Корнев·13.04.2026·5 мин

Чтобы рассчитать разницу во времени в Excel, используйте простую формулу вычитания =Конец-Начало, а для смен, переходящих через полночь, добавьте условие: =ЕСЛИ(Конец<Начало; Конец-Начало+1; Конец-Начало). Для корректного отображения сумм более 24 часов обязательно применяйте пользовательский формат ячеек [ч]:мм.

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

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

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

Простой случай (в пределах одних суток): Если сотрудник пришел в 09:00, а ушел в 18:00, достаточно вычесть одно значение из другого.

  • Ячейка A2 (Начало): 09:00
  • Ячейка B2 (Конец): 18:00
  • Формула в C2: =B2-A2
  • Результат: 9:00

Сложный случай (смена переходит через полночь): Если смена начинается в 22:00 и заканчивается в 06:00 следующего дня, обычное вычитание даст отрицательное значение или ошибку (#####). Чтобы исправить это, нужно добавить к концу одни сутки (число 1), если время конца меньше времени начала.

Используйте универсальную формулу:

=ЕСЛИ(B2<A2; B2-A2+1; B2-A2)

Либо более короткий математический вариант с функцией остатка от деления:

=ОСТАТ(B2-A2; 1)

Обе формулы корректно посчитают длительность смены с 22:00 до 06:00 как 8 часов.

Убедитесь, что ячейки с временем ввода имеют формат «Время» (например, 13:30), а ячейка с результатом также отформатирована как время. Если видите вместо времени набор символов #####, просто расширьте столбец.

Суммирование часов: работа с табелем более 24 часов

При попытке просуммировать отработанное время за неделю или месяц (например, 25 часов 30 минут) стандартный формат времени сбросит счетчик после 24 часов и покажет 1:30. Это происходит потому, что Excel воспринимает время как долю от суток.

Чтобы сумма не обнулялась, необходимо изменить формат отображения результата:

  1. Выделите ячейку с итоговой суммой.
  2. Нажмите Ctrl+1 (Формат ячеек).
  3. Выберите вкладку ЧислоВсе форматы.
  4. В поле «Тип» введите код: [ч]:мм (или [h]:mm в английской версии).

Квадратные скобки вокруг ч дают команду Excel суммировать часы, не переводя их в дни. Теперь формула =СУММ(C2:C10) корректно покажет, например, 53:45.

Если вам нужно получить результат в виде десятичной дроби (например, для расчета зарплаты, где 1 час 30 мин = 1.5 часа), умножьте сумму на 24:

=СУММ(C2:C10)*24

Ячейку с этой формулой нужно отформатировать как Числовой с нужным количеством знаков после запятой.

Учет ночных смен и разделение тарифов

Часто требуется отдельно посчитать дневные и ночные часы, так как они оплачиваются по разным ставкам. Стандартная ночная смена обычно определяется как период с 22:00 до 06:00.

Для автоматического выделения ночной части используйте комбинацию функций МАКС и МИН. Предположим, начало смены в A2, конец в B2.

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

=МАКС(0; МИН(B2; ВРЕМЯ(6;0;0)) - МАКС(A2; ВРЕМЯ(22;0;0)) + ЕСЛИ(B2<A2; 1; 0))

Логика работы: Формула находит пересечение интервала вашей смены с интервалом ночи (22:00–06:00). Часть +ЕСЛИ(...) учитывает переход через полночь.

Формула для дневных часов: Просто вычтите найденные ночные часы из общей длительности смены:

=(ЕСЛИ(B2<A2; B2-A2+1; B2-A2)) - [Ячейка_с_ночными_часами]

Функция ВРЕМЯ(час; мин; сек) создает временное значение. Убедитесь, что в формуле используются именно числа, а не текст. Если данные импортированы из другой системы и являются текстом, предварительно преобразуйте их функцией ЗНАЧЕН или ВРЕМЗНАЧ.

Сравнение методов расчета

ЗадачаФормулаФормат ячейкиПримечание
Разница в пределах дня=B2-A2ч:ммПростой случай
Смена через полночь=ОСТАТ(B2-A2; 1)ч:ммУниверсально
Сумма за месяц (>24ч)=СУММ(A2:A30)[ч]:ммОбязательно []
Часы для зарплаты=СУММ(A2:A30)*24ЧисловойДесятичный вид
Ночные часы (22-06)См. формулу вышеч:ммТребует проверки границ

Практический пример: создание табеля учета

Рассмотрим создание готового калькулятора для сотрудника с плавающим графиком.

Структура таблицы:

  • Столбец A: Дата
  • Столбец B: Время начала
  • Столбец C: Время конца
  • Столбец D: Всего часов (расчет)
  • Столбец E: Ночные часы (расчет)
  • Столбец F: Дневные часы (расчет)

Шаги настройки:

  1. В ячейку D2 вставьте формулу перехода через полночь: =ОСТАТ(C2-B2; 1). Протяните вниз.
  2. В ячейку E2 вставьте сложную формулу для ночных часов (см. раздел выше). Протяните вниз.
  3. В ячейку F2 вставьте формулу разницы: =D2-E2.
  4. Внизу столбца D (например, D32) поставьте сумму: =СУММ(D2:D31).
  5. Примените к ячейке суммы формат [ч]:мм.

Такой шаблон позволит автоматически контролировать переработки и корректно начислять доплаты за работу в ночное время без ручного пересчета.

Частые ошибки

  • Результат 0:00 при очевидной разнице. Проверьте формат ячеек с исходными данными. Если там стоит «Общий» или «Текстовый», Excel не поймет, что это время. Переведите формат в «Время».
  • Отрицательные значения. Возникают при вычитании времени начала из конца без учета даты, если смена ночная. Используйте функцию ОСТАТ(...; 1) или проверку ЕСЛИ.
  • Сумма «сбрасывается» после 24 часов. Самая распространенная ошибка. Решение только одно: формат [ч]:мм. Обычный ч:мм всегда показывает время суток, а не длительность.
  • Разделитель запятая или точка. В формулах с десятичными числами (например, при умножении на 24) разделитель зависит от региональных настроек Windows. Если формула выдает ошибку, замените точку на запятую или наоборот.

FAQ

Как перевести время 1:30 в число 1.5? Умножьте ячейку со временем на 24. Например, =A1*24. Не забудьте отформатировать результат как «Числовой».

Можно ли суммировать время из разных листов? Да, формула =СУММ(Лист1!A1:A10; Лист2!A1:A10) работает корректно. Главное, чтобы итоговая ячейка имела формат [ч]:мм.

Как учесть обеденный перерыв? Вычтите длительность обеда из общей формулы. Например: =ОСТАТ(Конец-Начало; 1) - ВРЕМЯ(1;0;0), где 1;0;0 — это один час обеда.

Почему формула с ВРЕМЯ(22;0;0) не работает? Убедитесь, что система использует точку с запятой ; как разделитель аргументов (стандарт для русской локали). В английской версии используется запятая ,.