Расчёт затраченного времени в Microsoft Excel — задача, с которой сталкиваются бухгалтеры, менеджеры проектов, логисты и даже фрилансеры. Казалось бы, что может быть проще: вычесть время начала из времени окончания? Но на практике пользователи сталкиваются с форматами ячеек, отрицательными значениями, учётом ночных смен и перерывов. Ошибки в таких расчётах ведут к искажённой отчётности, неверным выплатам за сверхурочные или срыву дедлайнов.
Эта статья не просто покажет, как вычесть одно время из другого. Мы разберём 7 реальных сценариев — от простого тайм-трекинга до расчёта рабочего времени с учётом графиков 2/2 или скользящих смен. Вы узнаете, почему Excel иногда показывает `######` вместо результата, как обойти ограничение на отрицательное время, и почему функция РАЗНДАТ не всегда подходит для табеля учёта. А в конце — чек-лист для проверки своих формул и FAQ по типичным ошибкам.
Если вы когда-нибудь получали в отчёте вместо нормального времени набор решёток или дату 1900 года — эта инструкция для вас. Мы обойдёмся без макросов и VBA, используя только встроенные функции Excel (актуально для версий 2010–2023 и Excel Online). Примеры будут с формулами, скриншотами логики и готовыми файлами для скачивания (ссылка в конце статьи).
1. Базовый расчёт: вычитание времени без учёта дат
Начнём с самого простого: у вас есть время начала и окончания задачи в формате чч:мм, и нужно узнать продолжительность. Например, встреча началась в 9:30, закончилась в 11:15 — сколько это по времени?
Шаг 1. Введите данные в две ячейки (например, A2 и B2) и примените к ним формат Время (выделите ячейки → Главная → Формат ячеек → категория Время). Если Excel автоматически не распознаёт время, введите его через двоеточие (9:30, а не 9.30).
Шаг 2. В третьей ячейке (C2) используйте простую формулу вычитания:
=B2-A2
Результат — 1:45 (1 час 45 минут).
⚠️ Внимание: Если после вычитания вы видите дату (например, 01.01.1900) или число типа 0,0729, значит, у ячейки с результатом неправильный формат. Исправьте его на чч:мм вручную.
- 📌 Частая ошибка: Ввод времени через точку (
9.30) вместо двоеточия. Excel воспримет это как дату. - ⏱️ Совет: Для удобства используйте формат
[ч]:мм(в ручном формате ячеек), чтобы часы отображались корректно при значениях > 24. - 🔄 Альтернатива: Функция
=ВРЕМЯЧАС(B2-A2)вернёт только часы, а=ВРЕМЯМИН(B2-A2)— только минуты.
2. Расчёт времени с учётом даты (ночные смены, многодневные задачи)
Ситуация усложняется, если задача начинается в один день, а заканчивается в другой. Например, ночная смена с 22:00 15 мая до 6:00 16 мая. Простое вычитание =B2-A2 даст ошибку или отрицательное значение.
Решение 1: Использовать полный формат даты+времени.
Введите в ячейки не только время, но и дату (например, 15.05.2026 22:00). Формула вычитания сработает корректно:
=B2-A2
Результат — 8:00 (8 часов).
Решение 2: Функция РАЗНДАТ (если нужны дни, часы, минуты по отдельности).
=РАЗНДАТ(A2; B2; "h")
Вернёт 8 (часов). Другие единицы измерения:
"d"— дни"m"— месяцы"y"— годы
⚠️ Внимание: РАЗНДАТ игнорирует формат ячейки и всегда возвращает число. Чтобы получить результат в формате времени, используйте комбинацию:
=ВРЕМЯ(РАЗНДАТ(A2;B2;"h"); РАЗНДАТ(A2;B2;"m"); РАЗНДАТ(A2;B2;"s"))
| Формула | Результат | Применение |
|---|---|---|
=B2-A2 |
8:00 |
Простое вычитание с датами |
=РАЗНДАТ(A2;B2;"h") |
8 |
Часы в числовом формате |
=ТЕКСТ(B2-A2;"[ч]:мм") |
8:00 |
Форматирование >24 часов |
=ЕСЛИ(B2 |
1 |
Проверка на ночную смену |
3. Учёт перерывов и нерабочего времени
Допустим, сотрудник работал с 9:00 до 18:00, но у него был часовый перерыв на обед. Как вычесть перерыв из общего времени? Или как посчитать только нормативные часы (например, с 8:00 до 17:00, а остальное — сверхурочные)?
Способ 1: Вычитание фиксированного перерыва.
Если перерыв всегда одинаковый (например, 1 час), просто вычтите его из результата:
= (B2-A2) - ВРЕМЯ(1;0;0)
Где ВРЕМЯ(1;0;0) — это 1 час.
Способ 2: Динамический перерыв (если время начала/окончания перерыва известно).
Добавьте в таблицу столбцы для времени начала и конца перерыва (C2 и D2), затем:
= (B2-A2) - (D2-C2)
Способ 3: Учёт только рабочих часов (например, с 8:00 до 17:00).
Используйте функцию МАКС и МИН, чтобы "обрезать" нерабочее время:
=МИН(B2;ВРЕМЯ(17;0;0)) - МАКС(A2;ВРЕМЯ(8;0;0))
Эта формула вернёт время только в интервале 8:00–17:00, даже если сотрудник пришёл в 7:30 или ушёл в 18:30.
Введены ли время начала и конца перерыва?|
Применён ли формат времени к ячейкам с перерывами?|
Учтено ли, что перерыв не может быть отрицательным? (используйте =ЕСЛИ(D2
Проверены ли границы рабочего дня (если нужны только нормативные часы)?-->
4. Расчёт сверхурочных и ночных часов
По Трудовому кодексу РФ ночные часы (с 22:00 до 6:00) оплачиваются в повышенном размере. Как их автоматически посчитать в Excel?
Шаг 1. Определите границы ночного времени в отдельных ячейках (например, E1=ВРЕМЯ(22;0;0), F1=ВРЕМЯ(6;0;0)).
Шаг 2. Используйте формулу для расчёта ночных часов:
=ЕСЛИ(B2<=F1; МАКС(0; МИН(B2;F1) - МАКС(A2;E1));
ЕСЛИ(A2>=E1; МИН(B2;F1+1) - МАКС(A2;E1);
(F1-A2) + (B2-E1)))
Эта формула учитывает 3 сценария: смена полностью в дневное время, полностью в ночное, или пересекает 00:00.
Для сверхурочных (например, всё, что свыше 8 часов в день):
=ЕСЛИ((B2-A2) > ВРЕМЯ(8;0;0); (B2-A2) - ВРЕМЯ(8;0;0); 0)
⚠️ Внимание: При расчёте ночных часов не забывайте, что F1+1 добавляет полные сутки (24 часа) к времени 6:00, чтобы корректно обработать случаи, когда смена заканчивается после 6:00 следующего дня.
5. Обработка отрицательного времени и ошибок
Excel по умолчанию не умеет работать с отрицательным временем (например, если время окончания раньше времени начала). Вместо результата вы увидите ######. Решается это двумя способами:
Способ 1: Использовать систему дат 1904 года.
Перейдите в Файл → Параметры → Дополнительно и поставьте галочку Использовать систему дат 1904 года. Теперь отрицательное время будет отображаться корректно.
Способ 2: Формула с проверкой.
=ЕСЛИ(B2
Эта формула добавляет полные сутки (1 день) к отрицательному результату, преобразуя его в положительное время.
Типичные ошибки и их исправление:
- 🚫
######: Слишком узкий столбец или отрицательное время. Растяните столбец или примените Способ 1/2 выше. - 🚫 Дата 1900 года: Неправильный формат ячейки. Измените на
чч:мм. - 🚫
#ЗНАЧ!: Ячейка содержит текст вместо времени. Проверьте ввод данных.
Почему Excel показывает 1900 год?
Excel хранит даты как числа, где 1 = 1 января 1900 года. Когда вы вводите время без даты (например, 9:30), Excel воспринимает его как 0.3958 (доля суток). Если к ячейке применён формат Общий или Дата, вы увидите 01.01.1900 или дробное число.
6. Автоматизация: табель учёта рабочего времени
Для ведения табеля удобно создать шаблон с автоматическим расчётом отработанных часов, перерывов и сверхурочных. Пример структуры таблицы:
| Дата | Время начала | Время окончания | Перерыв | Отработано | Ночные часы | Сверхурочные |
|---|---|---|---|---|---|---|
| 15.05.2026 | 09:00 | 18:30 | 1:00 | = (C2-B2) - D2 |
=ЕСЛИ(И(B2>=ВРЕМЯ(22;0;0);C2<=ВРЕМЯ(6;0;0)); C2-B2; 0) |
=ЕСЛИ(E2>ВРЕМЯ(8;0;0); E2-ВРЕМЯ(8;0;0); 0) |
Как улучшить шаблон:
- 📅 Автозаполнение дат: В первой ячейке столбца
Aвведите стартовую дату, затем протяните маркер автозаполнения вниз. - 🔍 Условное форматирование: Выделите красным ячейки, где отработано >8 часов (
Главная → Условное форматирование → Правила выделения ячеек). - 📊 Итоги: Добавьте строку с функциями
СУММдля подсчёта общего времени по неделе/месяцу.
7. Продвинутые сценарии: скользящий график, суммирование времени
Скользящий график (например, 2 через 2).
Если сотрудник работает по графику "день/ночь/отдых/отдых", формула расчёта времени усложняется. Здесь поможет комбинация ЕСЛИ и И:
=ЕСЛИ(И(A2="День"; B2>=ВРЕМЯ(8;0;0); B2<=ВРЕМЯ(20;0;0));
B2-A2;
ЕСЛИ(И(A2="Ночь"; ИЛИ(B2<=ВРЕМЯ(6;0;0); B2>=ВРЕМЯ(22;0;0)));
B2-A2;
0))
Где A2 — тип смены ("День"/"Ночь").
Суммирование времени >24 часов.
Если нужно сложить время из нескольких ячеек (например, неделя), используйте:
=СУММ(диапазон) * 24
Затем примените пользовательский формат [ч]:мм.
Расчёт среднего времени.
Для анализа продуктивности (например, среднее время на задачу):
=СРЗНАЧ(диапазон) * 24
Формат ячейки — ч:мм.
FAQ: Ответы на частые вопросы
Почему Excel показывает ###### вместо времени?
Это происходит в трёх случаях:
- Столбец слишком узкий — растяните его.
- Результат вычитания отрицательный (например,
6:00 - 9:00). Используйте систему дат 1904 года или формулу с проверкой. - Неправильный формат ячейки. Примените формат
чч:ммили[ч]:мм.
Как посчитать время в минутах для тарификации?
Умножьте разницу на 1440 (количество минут в сутках):
= (B2-A2) * 1440
Затем примените формат 0 (целое число).
Можно ли рассчитать время с точностью до секунд?
Да, используйте формат чч:мм:сс и вводите время с секундами (9:30:15). Формулы остаются теми же.
Как автоматически заполнять время прихода/ухода?
Для этого потребуется VBA или Power Query. Без макросов можно использовать комбинацию СЕГОДНЯ() и ТДАТАВР() для фиксации текущего времени:
=ЕСЛИ(A2=""; ТДАТАВР(); A2)
Но это потребует ручного обновления (нажатия F9).
Почему функция РАЗНДАТ иногда даёт неверный результат?
РАЗНДАТ считает полные интервалы. Например, =РАЗНДАТ("1.01.2026"; "2.01.2026"; "m") вернёт 0 (месяцев), хотя прошёл 1 день. Для точного расчёта времени используйте вычитание (=B2-A2).