メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで月ごとの労働時間を計算するにはどうすればよいですか?

Author Xiaoyang Last modified

多くの組織では、従業員は標準的な勤務スケジュールに従っており、例えば1日8時間、週5日間働きます。月ごとの総労働時間を正確に計算することは、給与処理、プロジェクトの進捗管理、および労働力管理において不可欠です。しかし、毎月の総時間を手動で集計すると、特に週末、祝日、または異なるスケジュールを持つ従業員を考慮する必要がある場合、エラーが発生しやすく、時間がかかります。Excelには、この計算を合理化し自動化するための実用的なツールや方法が用意されており、業務の精度と効率を確保できます。

以下は、さまざまなデータ構造やニーズに応じた、Excelで月ごとの労働時間を計算するためのいくつかの有効な解決策です:

数式を使用して月ごとの総労働時間を計算する

VBAコード – 複数行の月ごとの労働時間を自動的に計算する


数式を使用して月ごとの総労働時間を計算する

開始日と終了日、そして1日の労働時間の定額がわかっている場合、Excelの数式関数は月ごとの総労働時間を計算するための簡単で信頼性のあるアプローチを提供します。この方法は、各日が固定された勤務スケジュールを持つ場合に最適であり、週末やオプションで祝日を考慮に入れたい場合に適しています。以下は、計算を設定する方法です:

1. 結果を表示したい空白のセルを選択し、次の数式を入力します:

=NETWORKDAYS(A2,B2) *8

数式を入力した後、Enterキーを押します。最初、結果は日付形式で表示されることがあります。以下のスクリーンショットはそれを示しています:

Calculate total working hours per month with formula

2. 値を数字(労働時間)として表示するには、数式の結果があるセルを選択します。次に、ホームタブで「数値の書式」ドロップダウンメニューを見つけ、「標準」を選択します。これで、セルには総労働時間が単純な数字として表示されます。次のように表示されます:

Format the cell to general number

ヒント: 祝日を含む期間を正確に反映させるには、数式に休日範囲を追加してそれらの日を除外することができます。使用方法:

=NETWORKDAYS(A2,B2, C2:C4) *8

ここで、A2は開始日、B2は終了日、C2:C4は除外したい祝日の日付リストです。「標準」の書式でセルを設定してください。

Calculate total working hours per month exclude the holidays

注意: データの位置に応じてセル参照(A2、B2、C2:C4など)を調整してください。この方法は標準的な1日の労働時間に最適です。従業員がパートタイムで働いている場合や1日の労働時間が異なる場合は、数式を調整するか、以下の代替方法のいずれかを使用する必要があります。

数式を使用する利点の一つは、一度設定すれば、日付や祝日を変更した際に自動的に更新されることです。ただし、複数の従業員やより複雑な出勤記録が含まれるデータセットの場合、以下の高度な解決策の方が便利かもしれません。


VBAコード – 複数行の月ごとの労働時間を自動的に計算する

ワークシートに複数の従業員や行が記録されており、それぞれ異なる期間や異なる開始日・終了日がある場合、行ごとに手動で数式を入力するのは面倒です。VBAマクロを使用することで、すべての行の労働時間を一括で自動的に計算でき、時間を節約し、手動でのエラーを減らすことができます。

この解決策は、各行が従業員または特定の勤務期間を表し、開始日、終了日、およびオプションで祝日の列を持つテーブルがある場合に特に便利です。以下のマクロはすべての行をループ処理し、各エントリに対して計算された労働時間を埋め込みます。

1. 「開発」タブをクリックし、「Visual Basic」を選択してVisual Basic for Applicationsエディタを開きます。新しいウィンドウで「挿入」→「モジュール」をクリックし、次の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

注意事項と説明:

  • ワークシートのレイアウトに合わせて、列文字(startColendColholidayColresultCol)を必要に応じて調整してください。
  • holidayColにはカンマで区切られた日付を入れる必要があります。例:2025/7/3,2025/7/18。不要の場合は空欄にしておいても構いません。
  • このマクロは、データがヘッダーの後の2行目から始まると仮定しています。

2マクロを実行するには、 Run button ボタンをクリックするか、 F5 キーを押します(モジュールが選択されている状態で)。コードは自動的に計算を行い、結果列にあるすべての行の月ごとの総労働時間を埋め込みます。エラーが発生した場合は、データ参照や日付形式が正しいか確認してください。

この方法は、大規模な従業員名簿や多数の行を持つタイムシートデータでの計算を自動化する際に特に効果的であり、一貫性を確保し、記録漏れのリスクを軽減します。データ構造が柔軟であったり、日々の出勤ログを要約したい場合は、以下に説明するピボットテーブルを使用することを検討してください。


最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得