エクセルで労働時間を計算する方法
MOD関数・HOUR関数・TIME関数のコピペ計算式と、コピペで使える勤怠管理テンプレートの作り方を解説します。Webの簡易計算ツールも利用できます。
エクセル不要。出勤・退勤を入力するだけで実働時間を計算します。
エクセルの基本計算式(コピペ可)
以下のシート構成を前提にしています。B列=出勤・C列=退勤・D列=休憩時間(時間単位)・E列=実働時間・F列=残業時間。
実働時間を計算する式(日跨ぎ対応)
=MAX(MOD(C2-B2, 1) - D2, 0)
MOD(退勤-出勤, 1) で日跨ぎ勤務(22:00→翌6:00 等)にも対応します。D2が休憩時間(例: 1:00 = 1時間)。
残業時間を計算する式(所定8時間超)
=MAX(E2 - TIME(8, 0, 0), 0)
TIME(8,0,0) = 8時間00分。実働時間が8時間を超えた分だけ残業時間として算出します。
月間合計時間を正しく表示する設定
=SUM(E2:E32) → セルの書式設定「ユーザー定義」に [h]:mm と入力
注意: 書式を [h]:mm(角括弧付き)にしないと、24時間超でリセットされて誤表示になります。
よく使う関数一覧
| 関数 | 用途 | 例 |
|---|---|---|
| MOD(a, b) | 日跨ぎ時刻差 | =MOD(C2-B2, 1) |
| TIME(h, m, s) | 時刻定数作成 | =TIME(8, 0, 0) |
| HOUR(a) | 時間部分を整数で取得 | =HOUR(E2) |
| MINUTE(a) | 分部分を取得 | =MINUTE(E2) |
| MAX(a, 0) | マイナスを0に補正 | =MAX(E2-TIME(8,0,0), 0) |
| SUM + [h]:mm | 月間合計(24h超対応) | =SUM(E2:E32) |
シンプルな勤怠管理テンプレート(構成例)
A列: 日付 → 2026/5/1 B列: 出勤時刻 → 09:00 C列: 退勤時刻 → 18:00 D列: 休憩時間 → 1:00 (1時間の場合) E列: 実働時間 → =MAX(MOD(C2-B2, 1) - D2, 0) F列: 残業時間 → =MAX(E2 - TIME(8, 0, 0), 0) G列: 備考 → 任意 合計行(E34) → =SUM(E2:E32) ※書式: [h]:mm
使い方(3ステップ)
- 上記シート構成でヘッダー行(A〜G列)を作成する
- E2・F2に計算式を入力し、下方向にコピーする
- E列の合計セルを [h]:mm 書式に変更して月間合計を確認する
よくある質問
エクセルで労働時間を計算するには何関数を使いますか?
結論:MOD関数と [h]:mm 書式の組み合わせが基本です。基本はMOD関数で時刻差(日跨ぎ対応)、HOUR・MINUTE関数で時・分を取り出します。表示形式を [h]:mm にすると24時間超の合計も正確に表示できます。
日跨ぎ勤務(深夜0時をまたぐ)の計算はできますか?
結論:できます。MOD(退勤-出勤, 1) の式で日跨ぎを自動判定します。22:00出勤→翌6:00退勤でも MOD(C2-B2,1) で正しく8時間と計算されます。
残業時間だけを計算する方法は?
結論:MAX(実働時間 - TIME(8,0,0), 0) で所定労働8時間超の残業時間を求められます。所定労働時間が異なる場合は TIME(7,30,0) など変更してください。
月間合計時間の表示がおかしい場合は?
結論:書式設定を [h]:mm(角括弧付き)に変更してください。SUM関数で合計した後、セルの書式設定を「ユーザー定義 → [h]:mm」に変更してください。角括弧なしの h:mm では24時間でリセットされます。
Google スプレッドシートでも使えますか?
結論:MOD・HOUR・MINUTE関数はスプレッドシートでも動作しますが、書式設定の操作方法が異なります。「表示形式 > 数字 > 時間」から設定できます。
関連ツール
本ツールおよびエクセル計算式は概算用です。実際の労働時間・残業代は就業規則・雇用契約・労使協定の内容によって異なる場合があります。具体的な計算や労働条件の確認は勤務先または社会保険労務士にご相談ください。