Excelで月ごとの労働時間を計算するにはどうすればよいですか?
多くの組織では、従業員は標準的な勤務スケジュールに従っており、例えば1日8時間、週5日間働きます。月ごとの総労働時間を正確に計算することは、給与処理、プロジェクトの進捗管理、および労働力管理において不可欠です。しかし、毎月の総時間を手動で集計すると、特に週末、祝日、または異なるスケジュールを持つ従業員を考慮する必要がある場合、エラーが発生しやすく、時間がかかります。Excelには、この計算を合理化し自動化するための実用的なツールや方法が用意されており、業務の精度と効率を確保できます。
以下は、さまざまなデータ構造やニーズに応じた、Excelで月ごとの労働時間を計算するためのいくつかの有効な解決策です:
VBAコード – 複数行の月ごとの労働時間を自動的に計算する
数式を使用して月ごとの総労働時間を計算する
開始日と終了日、そして1日の労働時間の定額がわかっている場合、Excelの数式関数は月ごとの総労働時間を計算するための簡単で信頼性のあるアプローチを提供します。この方法は、各日が固定された勤務スケジュールを持つ場合に最適であり、週末やオプションで祝日を考慮に入れたい場合に適しています。以下は、計算を設定する方法です:
1. 結果を表示したい空白のセルを選択し、次の数式を入力します:
=NETWORKDAYS(A2,B2) *8
数式を入力した後、Enterキーを押します。最初、結果は日付形式で表示されることがあります。以下のスクリーンショットはそれを示しています:
2. 値を数字(労働時間)として表示するには、数式の結果があるセルを選択します。次に、ホームタブで「数値の書式」ドロップダウンメニューを見つけ、「標準」を選択します。これで、セルには総労働時間が単純な数字として表示されます。次のように表示されます:
ヒント: 祝日を含む期間を正確に反映させるには、数式に休日範囲を追加してそれらの日を除外することができます。使用方法:
=NETWORKDAYS(A2,B2, C2:C4) *8
ここで、A2は開始日、B2は終了日、C2:C4は除外したい祝日の日付リストです。「標準」の書式でセルを設定してください。
注意: データの位置に応じてセル参照(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
注意事項と説明:
- ワークシートのレイアウトに合わせて、列文字(startCol、endCol、holidayCol、resultCol)を必要に応じて調整してください。
- holidayColにはカンマで区切られた日付を入れる必要があります。例:2025/7/3,2025/7/18。不要の場合は空欄にしておいても構いません。
- このマクロは、データがヘッダーの後の2行目から始まると仮定しています。
2マクロを実行するには、 ボタンをクリックするか、 F5 キーを押します(モジュールが選択されている状態で)。コードは自動的に計算を行い、結果列にあるすべての行の月ごとの総労働時間を埋め込みます。エラーが発生した場合は、データ参照や日付形式が正しいか確認してください。
この方法は、大規模な従業員名簿や多数の行を持つタイムシートデータでの計算を自動化する際に特に効果的であり、一貫性を確保し、記録漏れのリスクを軽減します。データ構造が柔軟であったり、日々の出勤ログを要約したい場合は、以下に説明するピボットテーブルを使用することを検討してください。
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
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、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得