KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как рассчитать количество часов между временем, превышающим полночь, в Excel?

АвторСяоянДата изменения

Предположим, вы ведёте график работы в Excel и вам нужно отслеживать рабочие периоды сотрудников, которые начинаются поздно в один день и заканчиваются уже после полуночи следующего. Например, в столбце A указано время начала в текущий день, а в столбце B — время окончания на следующий день после полуночи. При попытке рассчитать разницу во времени с помощью простой формулы вычитания, такой как «=B2-A2», Excel выдаёт неверный или отрицательный результат, как показано на скриншоте ниже. Это происходит потому, что расчёты времени в Excel сбрасываются в полночь, и прямое вычитание даёт ошибочные значения для интервалов, пересекающих полночь. Как точно рассчитать общее количество рабочих часов между двумя моментами времени, если время окончания приходится на период после полуночи в Excel?
обычная формула для расчета часов между временными значениями после полуночи даст неверный результат

Рассчитайте часы между временем после полуночи с помощью формулы

Рассчитайте часы между временем после полуночи с помощью кода VBA (расширенная автоматизация)


Рассчитайте часы между временем после полуночи с помощью формулы

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

Как это работает: Формула «=(B2-A2+(B2<,A2))*24» проверяет, является ли время окончания (B2) более ранним, чем время начала (A2). Если да — к результату добавляется 1 день (поскольку Excel хранит время как доли 24-часового дня), благодаря чему вы всегда получаете положительное значение в часах.

1. Введите в пустую ячейку рядом с данными о времени (например, в ячейку C2) следующую формулу:

=(B2-A2+(B2<,A2))*24

Пояснение: Здесь A2 содержит время начала, а B2 — время окончания (после полуночи). При необходимости скорректируйте ссылки на ячейки в соответствии с расположением ваших данных.

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

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

перетащите и заполните формулу в другие ячейки

Советы:

  • Убедитесь, что все ячейки со временем отформатированы как Время (щелкните правой кнопкой мыши → «Формат ячеек» → «Время»).
  • Эта формула отображает часы в виде десятичной дроби. Если вам нужен результат в часах и минутах, используйте форматирование с помощью функции ТЕКСТ, например: =TEXT(B2-A2+(B2<,A2),"h:mm"). Однако исходная формула предпочтительнее, когда требуется выполнять расчёты в десятичных часах — например, для начисления заработной платы или составления отчётности.
  • Если ваши данные содержат недопустимые записи времени, проверьте их на опечатки или значения, которые Excel не распознаёт как время.

Типичные ошибки:

  • Если появляется ошибка #ЗНАЧ!, дважды проверьте, что оба столбца содержат корректные значения времени, а не текст.
  • Отрицательные или неожиданные результаты, как правило, указывают на то, что ссылки в формуле смещены или время указано некорректно.

Итог: Это решение отлично подходит для типичных графиков смен или простого учёта ночных часов, когда данные представлены в стандартной двухстолбцовой структуре и не требуется сложная бизнес-логика.


Рассчитайте часы между временем после полуночи с помощью кода VBA (расширенная автоматизация)

Если вам нужно обрабатывать большой объём данных о времени или автоматизировать расчёт часов для сложных сценариев — например, с пользовательским округлением, исключениями или переменными перерывами, — макрос VBA поможет сэкономить время и сократить количество ошибок, возникающих при ручной обработке. Этот метод идеально подходит продвинутым пользователям, а также тем, кто работает с изменяющимися графиками смен, нестандартными контрольными точками или задачами пакетной обработки.

Применимые сценарии:Выберите это решение, если вы:

  • Регулярно обрабатывать сотни или тысячи строк
  • Требуется логика сложнее простого перехода через полночь (например, переменные правила сверхурочной работы, вычеты на обеденный перерыв)
  • Предпочитаете решение, которое автоматически пересчитывается при минимальном ручном вводе

 

Недостатки: Пользователям необходимо быть готовыми включать макросы, а получателям книги может также понадобиться разрешить выполнение VBA или изменить настройки безопасности макросов.

1. Откройте рабочую книгу Excel и нажмите Alt + F11, чтобы запустить редактор Visual Basic for Applications (VBA). В интерфейсе VBA выберите Вставка > Модуль, чтобы создать новый модуль, и вставьте приведённый ниже код в окно редактора:

Sub CalculateHoursAcrossMidnight()
    Dim rng As Range
    Dim cell As Range
    Dim startTime As Date
    Dim endTime As Date
    Dim resultCol As Integer
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select the range containing start and end times (two columns)", xTitleId, rng.Address, Type:=8)
    
    If rng Is Nothing Then Exit Sub
    
    resultCol = rng.Columns(rng.Columns.Count).Column + 1
    
    For Each cell In rng.Columns(1).Cells
        startTime = cell.Value
        endTime = cell.Offset(0, 1).Value
        
        If IsDate(startTime) And IsDate(endTime) Then
            If endTime < startTime Then
                cell.Offset(0, 2).Value = (endTime - startTime + 1) * 24
            Else
                cell.Offset(0, 2).Value = (endTime - startTime) * 24
            End If
        Else
            cell.Offset(0, 2).Value = "Invalid Time"
        End If
    Next cell
    
    MsgBox "Calculation complete! Hours between times after midnight are now in the next column.", vbInformation, xTitleId
End Sub

2. Чтобы запустить макрос, закройте редактор VBA и вернитесь в Excel. Выделите на листе диапазон, включающий оба столбца — со временем начала и окончания, затем нажмите клавишу F5 или щёлкните кнопку Выполнить.

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

Советы и устранение неполадок:

  • Оба столбца — со временем начала и окончания — должны содержать корректные значения даты и времени; ячейки с нераспознаваемыми форматами будут отмечены как «Недопустимое время».
  • Чтобы повторно использовать макрос или адаптировать его для других листов, измените выделение или, при необходимости, скорректируйте смещения столбцов.
  • Если макрос не отображается или не запускается, убедитесь, что макросы включены: измените параметры безопасности Excel (Файл > Параметры > Центр управления > Параметры макросов).
  • Этот подход легко адаптируется под ваши бизнес-правила: при необходимости добавьте дополнительную логику VBA для учёта перерывов, округления времени или расчёта сверхурочных.

Итог: Автоматизированный метод с использованием VBA особенно полезен пользователям, управляющим большими списками сотрудников, которым регулярно требуются расчёты или необходимо внедрять организационно-специфическую логику учёта рабочего времени. После настройки он устраняет необходимость в рутинной ручной работе и минимизирует риск ошибок при расчётах для ночных смен.

скриншот kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

  • Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
  • Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
  • Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
  • Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
  • Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Расширьте возможности Excel с помощью инструментов на базе ИИ.Скачать сейчаси ощутите эффективность, как никогда раньше!

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек