Как рассчитать количество рабочих часов в месяц в Excel?
Во многих организациях сотрудники работают по стандартному графику — например, 8 часов в день и 5 дней в неделю. Точный расчёт общего количества рабочих часов в месяц крайне важен для корректного начисления заработной платы, отслеживания проектов и эффективного управления персоналом. Однако ручной подсчёт рабочих часов за каждый месяц может быть не только трудоёмким, но и подверженным ошибкам, особенно если учитывать выходные, государственные праздники или разнообразные графики работы сотрудников. Excel предлагает удобные инструменты и методы, которые помогут вам легко автоматизировать этот процесс, обеспечивая точность и повышая операционную эффективность.
Ниже приведены несколько эффективных решений для расчёта месячных рабочих часов в Excel, подходящих для различных структур данных и потребностей:
Расчёт общих рабочих часов в месяц с помощью формул
Код VBA — автоматический расчёт месячных рабочих часов для нескольких строк
Расчёт общих рабочих часов в месяц с помощью формул
Формульные функции Excel обеспечивают простой и надёжный способ расчёта общих рабочих часов в месяц, если вы знаете дату начала и дату окончания, а также норму рабочих часов в день. Этот метод идеально подходит, когда каждый день имеет фиксированный график работы, и вы хотите учитывать выходные, а при необходимости — и праздничные дни. Ниже приведено описание настройки расчёта:
1. Выберите пустую ячейку, в которой нужно отобразить результат, и введите следующую формулу:
=NETWORKDAYS(A2,B2) *8 После ввода формулы нажмите клавишу Enter. Изначально результат может отображаться в формате даты. Ниже — пример на скриншоте:

2. Чтобы отобразить значение в виде числа (рабочие часы), выберите ячейку с результатом формулы. Затем на вкладке Главная найдите раскрывающийся список Числовой формат и выберите пункт Общий. Теперь ячейка будет отображать общее количество рабочих часов в виде обычного числа, как показано на рисунке:

Совет: чтобы точно учитывать периоды, включающие праздничные дни, исключите их, добавив диапазон праздников в формулу. Используйте:
=NETWORKDAYS(A2,B2, C2:C4) *8 где A2 — это дата начала, B2 — это конечная дата, а C2:C4 содержит список праздничных дат, которые необходимо исключить. Отформатируйте ячейку как Общий, как описано выше.

Примечание: Измените ссылки на ячейки (например, A2, B2, C2:C4) в соответствии с расположением ваших данных. Этот метод идеально подходит для стандартного ежедневного графика работы. Если сотрудники работают неполный день или продолжительность рабочего дня варьируется, возможно, потребуется адаптировать формулу или воспользоваться одним из альтернативных методов, приведённых ниже.
Одно из преимуществ использования формул заключается в том, что после настройки они автоматически обновляются при изменении дат или праздничных дней. Однако если ваши данные охватывают нескольких сотрудников или содержат более сложные записи посещаемости, вам могут оказаться удобнее следующие расширенные решения.
Код VBA — автоматический расчёт месячных рабочих часов для нескольких строк
Если ваш лист содержит записи о нескольких сотрудниках или строках — каждая со своими периодами, датами начала и окончания — ручной ввод формул построчно быстро становится утомительным. С помощью макроса VBA можно автоматически рассчитать рабочие часы для каждой строки массово, значительно экономя время и минимизируя риск ошибок при ручном вводе.
Это решение особенно полезно, когда у вас есть таблица, в которой каждая строка представляет сотрудника или отдельный рабочий период со столбцами для Дата начала, Конечная дата и, при необходимости, праздничных дней. Приведённый ниже макрос выполнит циклический перебор всех строк и заполнит рассчитанные рабочие часы для каждой записи.
1. Откройте редактор Visual Basic for Applications, выбрав Инструменты разработчика > Visual Basic. В появившемся окне нажмите Вставка > Модуль и вставьте следующий код VBA в область кода:
Sub CalculateMonthlyWorkingHours()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim startCol As String, endCol As String, holidayCol As String, resultCol As String
Dim holidays As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
' Adjust these column letters as needed
startCol = "A" ' Start Date in Column A
endCol = "B" ' End Date in Column B
holidayCol = "C" ' Holiday list in Column C (optional; can be blank)
resultCol = "D" ' Results in Column D
lastRow = ws.Cells(ws.Rows.Count, startCol).End(xlUp).Row
For i = 2 To lastRow
If ws.Cells(i, startCol).Value <> "" And ws.Cells(i, endCol).Value <> "" Then
If ws.Cells(i, holidayCol).Value <> "" Then
holidays = Split(ws.Cells(i, holidayCol), ",")
ws.Cells(i, resultCol).Value = WorksheetFunction.NetworkDays(ws.Cells(i, startCol), ws.Cells(i, endCol), holidays) * 8
Else
ws.Cells(i, resultCol).Value = WorksheetFunction.NetworkDays(ws.Cells(i, startCol), ws.Cells(i, endCol)) * 8
End If
Else
ws.Cells(i, resultCol).Value = ""
End If
Next i
End Sub Примечания и инструкции:
- При необходимости измените буквы столбцов ()startCol, endCol, holidayCol, resultCol) в соответствии с макетом вашего листа.
- Столбец holidayCol должен содержать даты, разделённые запятыми, например: 7/3/2025 , 7/18/2025. Если он не требуется, его можно оставить пустым.
- Этот макрос предполагает, что данные начинаются со строки 2 — сразу после заголовка.
2. Чтобы запустить макрос, нажмите кнопку
или клавишу F5, когда выбран модуль. Код автоматически рассчитает и заполнит общее количество месячных рабочих часов для всех строк в столбце результата. Если возникнет ошибка, проверьте корректность ссылок на ваши данные и параметры формата даты.
Этот метод особенно эффективен для автоматизации расчётов в крупных списках сотрудников или многострочных табелях учёта рабочего времени — он обеспечивает согласованность данных и снижает риск пропуска записей. Если структура ваших данных более гибкая или вы хотите суммировать ежедневные журналы посещаемости, рассмотрите возможность использования сводной таблицы, как описано ниже.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал 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.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек