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

Если при вычитании времени в Excel вы получаете не часы, а дату в формате ###### или неправильное число — проблема в формате ячеек или неверной формуле. Чаще всего это происходит при попытке посчитать разницу между временными метками (например, 14:30 и 22:15) без учёта того, что Excel хранит время как доли суток. Чтобы получить корректный результат в часах, минутах или общем количестве рабочих часов за смену, нужно не только правильно вычесть значения, но и применить специальный формат или использовать функции вроде ЧАС(), МИНУТЫ() и СУММ().

В 90% случаев ошибка связана с тем, что пользователи забывают изменить формат ячейки с "Общий" на "Часовый" или "[ч]:мм". Например, если вычесть 8:00 из 17:00, Excel покажет 9:00 (что верно), но при суммировании нескольких таких разниц за день результат может отобразиться как 21:00 вместо 45 часов. Далее разберём, как избежать таких ловушек и автоматизировать расчёты для табелей, графиков работы и отчётов.

Почему Excel неправильно считает часы: 3 главные причины

Перед тем как переходить к формулам, важно понять, почему стандартное вычитание времени часто даёт сбой. Excel оперирует временем как долей суток: 12:00 для программы — это 0.5 (половина дня), а 18:300.770833. Когда вы вычитаете одно время из другого, результат тоже остаётся в этом формате, что и приводит к визуальным ошибкам.

Три типичные ситуации, из-за которых пользователи получают неверные данные:

  • 🔄 Формат ячейки "Общий": По умолчанию Excel отображает результат вычитания времени как дату (например, 01.01.1900 9:00 вместо 9 часов).
  • Переход через полночь: Если смена заканчивается после 00:00 (например, с 22:00 до 06:00), простое вычитание даст отрицательное значение.
  • Суммирование разниц: При сложении нескольких временных интервалов (например, за неделю) Excel может показать 45:30 как 21:30 следующего дня.

Решение каждой из этих проблем требует разных подходов: где-то достаточно изменить формат, а где-то понадобятся функции вроде ЕСЛИ() или МОД(). Далее — конкретные инструкции для каждого случая.

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

Способ 1: Простое вычитание времени (для смен внутри одних суток)

Если начало и конец события происходят в пределах одних календарных суток (например, с 09:00 до 18:00), достаточно выполнить базовую операцию вычитания. Вот пошаговая инструкция:

  1. Введите время начала в ячейку A1 (например, 09:00).
  2. Введите время окончания в ячейку B1 (например, 18:00).
  3. В ячейке C1 введите формулу: =B1-A1.
  4. Нажмите Enter — результат отобразится как 9:00 (9 часов).

Однако здесь есть подводный камень: если суммировать несколько таких разниц (например, за неделю), Excel может показать неверное значение. Чтобы этого избежать:

Выделите ячейку с результатом (например, C1)|Нажмите правой кнопкой → "Формат ячеек"|Выберите категорию "Время"|Установите тип "[ч]:мм" (для отображения более 24 часов)|Нажмите "ОК"-->

Теперь при суммировании нескольких интервалов (например, =СУММ(C1:C7)) вы получите общее количество часов, а не "обнуление" после 24 часов.

Способ 2: Расчёт часов с учётом ночной смены (переход через 00:00)

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

Вариант А: Использование функции ЕСЛИ()

Формула проверяет, пересекает ли смена полночь, и корректирует расчёт:

=ЕСЛИ(B1

Где:

  • A1 — время начала (например, 22:00),
  • B1 — время окончания (например, 06:00).

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

Вариант Б: Прибавление 1 к времени окончания (если оно меньше начала)

Альтернативная формула без ЕСЛИ():

=МОД(B1-A1;1)

Эта формула использует функцию МОД(), которая возвращает остаток от деления. Для корректного отображения установите формат ячейки [ч]:мм.

Почему формула с МОД() работает?

Функция МОД(B1-A1;1) вычисляет остаток от деления разницы времени на 1 (что равно 24 часам в формате Excel). Если результат отрицательный (например, -16 часов для смены 22:00–06:00), МОД() прибавляет 24 часа, чтобы получить корректное значение (8 часов).

Способ 3: Подсчёт общего количества часов за период (неделя, месяц)

Когда нужно просуммировать часы за несколько дней (например, для табеля рабочего времени), стандартная функция СУММ() может дать неверный результат из-за ограничения в 24 часа. Чтобы избежать этого:

  1. Убедитесь, что все ячейки с разницей времени имеют формат [ч]:мм.
  2. Используйте формулу: =СУММ(C1:C30), где C1:C30 — диапазон с ежедневными разницами.

Пример таблицы с расчётом за неделю:

ДатаНачало сменыКонец сменыЧасы работы
10.05.202609:0018:009:00
11.05.202622:0006:008:00
12.05.202610:0019:309:30
Итого:26:30

Если итоговая сумма отображается как 2:30 вместо 26:30, проверьте формат ячейки с итогом — он должен быть [ч]:мм.

Способ 4: Выделение часов и минут в отдельные столбцы

Иногда требуется разделить общее время на часы и минуты (например, для отчётов или дальнейших расчётов оплаты). Для этого используйте функции:

  • 🕒 Часы: =ЧАС(C1) — вернёт целое количество часов (например, 9 для 9:30).
  • ⏱️ Минуты: =МИНУТЫ(C1) — вернёт минуты (например, 30).
  • Перевод в десятичную дробь: =C1*24 — конвертирует 9:30 в 9.5 (удобно для умножения на тариф).

Пример формулы для расчёта оплаты по часовому тарифу (если ставка 500 руб/час):

=C1*24*500

Где C1 — ячейка с временем в формате ч:мм.

Способ 5: Автоматический расчёт переработок и ночных часов

Для сложных расчётов (например, оплата ночных часов по повышенному тарифу) понадобятся вложенные функции. Допустим, ночные часы считаются с 22:00 до 06:00, а переработка — всё, что свыше 8 часов в день.

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

=ЕСЛИ(И(A1>=ВРЕМЯ(22;0;0); B1<=ВРЕМЯ(6;0;0)); B1-A1;

ЕСЛИ(И(A1<ВРЕМЯ(22;0;0); B1>ВРЕМЯ(22;0;0)); B1-ВРЕМЯ(22;0;0);

ЕСЛИ(И(A1<ВРЕМЯ(6;0;0); B1>ВРЕМЯ(6;0;0)); ВРЕМЯ(6;0;0)-A1; 0)))

Формула для переработки (если норма 8 часов):

=ЕСЛИ((B1-A1)*24>8; (B1-A1)*24-8; 0)

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

⚠️ Внимание: При использовании функции ВРЕМЯ() убедитесь, что региональные настройки Excel соответствуют вашему часовому поясу. В некоторых версиях разделителем времени служит ; (например, ВРЕМЯ(22;0;0)), а не ,.

Типичные ошибки и как их исправить

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

ОшибкаПричинаРешение
###### в ячейкеСлишком большой результат (например, 25:00) при формате "Время"Измените формат на [ч]:мм или Общий
Отрицательное времяВычитание времени "наоборот" (конец раньше начала)Используйте ЕСЛИ() или МОД(), как в Способе 2
#ЗНАЧ! в функциях ЧАС()Ячейка содержит текст или неверный форматПроверьте формат ячейки (должен быть "Время")
Некорректная суммаФормат ячейки с итогом не поддерживает >24 часовПримените формат [ч]:мм к ячейке с СУММ()

Если проблема сохраняется, проверьте:

  • 🔍 Региональные настройки: В некоторых версиях Excel разделителем в формулах служит ;, а не ,.
  • 📅 Даты в ячейках: Убедитесь, что в ячейках только время, а не дата+время (например, 10.05.2026 09:00).
  • 🔄 Автозаполнение: При копировании формул проверьте, что ссылки на ячейки корректируются (например, A1A2).

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

Как посчитать часы между двумя датами и временем (например, с 10.05.2026 09:00 до 12.05.2026 18:00)?

Используйте формулу =B1-A1, где A1 и B1 содержат полные даты с временем. Затем примените формат [ч]:мм к ячейке с результатом. Для разделения на дни и часы используйте:

=ЦЕЛОЕ(B1-A1) & " дней, " & ТЕКСТ(MОД(B1-A1;1);"[ч]:мм")
Почему при суммировании времени получается дата 01.01.1900?

Это происходит, когда формат ячейки с результатом — "Общий" или "Дата". Измените его на Время или [ч]:мм. Если нужно отобразить только часы (без минут), используйте формат ч.

Как посчитать только рабочие часы (например, с 9:00 до 18:00, исключая обед)?

Используйте формулу с учётом фиксированного перерыва:

=ЕСЛИ(B1>A1; МИН(B1;ВРЕМЯ(18;0;0))-МАКС(A1;ВРЕМЯ(9;0;0))-ВРЕМЯ(1;0;0); 0)

Где ВРЕМЯ(1;0;0) — это час на обед. Для гибкого перерыва добавьте дополнительную ячейку с его длительностью.

Можно ли автоматически подсвечивать переработки (например, если >8 часов)?

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

  1. Выделите ячейки с часами работы.
  2. Перейдите на вкладку "Главная" → "Условное форматирование" → "Создать правило".
  3. Выберите "Форматировать только ячейки, которые содержат".
  4. Установите условие: "Значение" → "больше" → 8/24 (8 часов в формате Excel).
  5. Задайте цвет заполнения (например, красный) и нажмите "ОК".
Как экспортировать таблицу с часами в Word или PDF без потери форматирования?

Перед экспортом:

  1. Выделите диапазон с данными.
  2. Скопируйте его (Ctrl+C).
  3. В Word вставьте как "Сохранить исходное форматирование" (иконка с буквой A).
  4. Для PDF: ФайлЭкспортСоздать PDF/XPS → выберите область "Таблица".

Если формат времени сбивается, предварительно преобразуйте ячейки в текст: выделите их → Ctrl+1 → категория "Текстовый".