勤務表を作成するときに、
- 勤務時間から休憩時間を差し引きたい
- 毎日同じ休憩時間を自動計算したい
- 6時間以上勤務したら自動で休憩を引きたい
と考えたことはないでしょうか。
勤務時間の計算自体は簡単ですが、休憩時間を手作業で差し引いていると入力ミスや計算ミスの原因になります。
Excelでは関数を使うことで、勤務時間から休憩時間を自動で差し引くことができます。
この記事では、Excelで休憩時間を自動で差し引く基本的な方法から、勤務時間に応じて休憩時間を自動判定する実務向けの設定方法まで詳しく解説します。
✅ Excelで休憩時間を自動で差し引く基本方法
勤務時間の計算はできても、休憩時間の扱いで悩む人は少なくありません。
特に勤務表では、開始時間と終了時間だけ入力しているケースが多く、毎回休憩時間を計算すると作業量が増えてしまいます。
また、手入力による差し引きは計算ミスの原因になります。
勤怠管理では数十分の誤差でも給与計算へ影響することがあります。
まずは最もシンプルな方法として、固定の休憩時間を差し引く計算方法を理解しましょう。
この考え方を覚えておくと、その後の応用も理解しやすくなります。
・開始時間と終了時間から休憩時間を引く
以下のような表を用意します。
| 開始時間 | 終了時間 | 休憩時間 | 実働時間 |
|---|---|---|---|
| 9:00 | 18:00 | 1:00 |
D2セルへ次の数式を入力します。
=B2-A2-C2
計算結果は「8:00」になります。
・手順
- 開始時間を入力する
- 終了時間を入力する
- 休憩時間を入力する
- 勤務時間から休憩時間を差し引く
・表示形式を時間に変更する
計算結果が正しく表示されない場合は、
- 対象セルを選択
- 右クリック
- セルの書式設定
- ユーザー定義
- 「[h]:mm」を設定
としておくと分かりやすく表示できます。
時間計算が正しいはずなのに結果がおかしい場合は、表示形式や時刻データの扱いに原因があることもあります。時間計算でよくあるトラブルについては、【Excel】時間計算でズレる原因とは?表示形式・日付・時刻の落とし穴を解説の記事も参考にしてください。
✅ Excelで休憩時間を固定して自動計算する方法
毎日1時間休憩が発生する職場では、休憩時間を入力する作業自体を省略したい場合があります。
勤務表の入力項目が少なくなるため、入力ミスの削減にもつながります。
また、社員全員で同じルールを適用できるため管理もしやすくなります。
実務では固定休憩を採用している企業も多いため、この方法は非常に活用機会が多いです。
毎日同じ休憩時間であれば、関数内へ直接組み込むのがおすすめです。
設定方法を確認してみましょう。
・休憩1時間を自動で差し引く
D2セルに以下の数式を入力します。
=B2-A2-TIME(1,0,0)
TIME関数は時間を指定できる関数です。
TIME(1,0,0)
は「1時間」を意味します。
・30分休憩の場合
=B2-A2-TIME(0,30,0)
このように変更するだけで対応できます。
・固定休憩が向いているケース
- 事務職
- コールセンター
- 定時勤務中心の職場
- シフトが固定されている職場
✅ 勤務時間に応じて休憩時間を自動で差し引く方法
実際の職場では、
- 6時間以上で45分休憩
- 8時間以上で1時間休憩
のようなルールが採用されていることがあります。
この場合、固定時間を引くだけでは正しく計算できません。
勤務時間に応じて休憩時間を自動判定する仕組みが必要です。
ここを手入力にしてしまうと運用負荷が大きくなります。
ExcelならIF関数を利用して自動化できます。
実務向け勤務表では特によく利用される方法です。
・8時間以上なら1時間休憩
=IF(B2-A2>=TIME(8,0,0),B2-A2-TIME(1,0,0),B2-A2)
休憩時間を差し引いた後は、残業時間の自動計算まで行うことで勤務表の実用性がさらに高まります。残業管理を効率化したい方は、【Excel】残業時間を自動計算する方法|法定時間を考慮した管理表作成のコツもご覧ください。
・6時間以上なら45分休憩
=IF(B2-A2>=TIME(6,0,0),B2-A2-TIME(0,45,0),B2-A2)
・複数条件で休憩時間を変える
=IF(B2-A2>=TIME(8,0,0),
B2-A2-TIME(1,0,0),
IF(B2-A2>=TIME(6,0,0),
B2-A2-TIME(0,45,0),
B2-A2))
この数式なら勤務時間に応じて休憩時間を自動判定できます。
シフトによって休憩時間や勤務時間のルールが異なる場合は、シフト勤務向けの時間計算方法も知っておくと便利です。複雑な勤務パターンに対応したい方は【Excel】シフト勤務の時間計算を自動化する方法|日をまたぐ勤務にも対応をご覧ください。
✅ 日付をまたぐ勤務で休憩時間を差し引く方法
夜勤やシフト勤務では日付をまたぐケースがあります。
この場合、単純な引き算では正しい結果にならないことがあります。
例えば、
- 出勤:22:00
- 退勤:翌7:00
のようなケースです。
勤務表を作成した後で夜勤対応が必要になることも多いため、最初から考慮しておくと安心です。
ここを理解していないとマイナス表示になることがあります。
夜勤管理を行う場合は必ず覚えておきましょう。
・夜勤勤務の計算式
=MOD(B2-A2,1)-TIME(1,0,0)
MOD関数を利用すると日付をまたいでも正しく計算できます。
夜勤や深夜勤務を管理する機会が多い場合は、日付をまたぐ時間計算の仕組みを理解しておくことが重要です。詳しい考え方は【Excel】日をまたぐ時間計算を正しく行う方法|深夜勤務や夜勤管理に対応の記事で解説しています。
・計算例
| 開始 | 終了 | 休憩 | 実働 |
|---|---|---|---|
| 22:00 | 7:00 | 1:00 | 8:00 |
夜勤勤務表では非常によく利用される計算方法です。
夜勤計算や勤務時間計算で思わぬズレが発生する場合は、Excel独自の「シリアル値」の仕組みが関係していることがあります。時間計算の根本を理解したい方は【Excel】シリアル値とは?時間計算でズレる原因と仕組みをやさしく解説も参考にしてください。
✅ Excelで休憩時間計算を効率化する実務テクニック
勤務表を長期間運用する場合は、計算式だけでなく管理しやすさも重要です。
実務では数人分ではなく数十人分の勤務データを扱うことがあります。
そのため、あとから修正しやすい設計にしておくことが大切です。
特に休憩ルール変更は意外と発生します。
最初から拡張しやすい形にしておくと保守が楽になります。
ここでは実務でおすすめの設計方法を紹介します。
・休憩時間を別セルで管理する
例えばG1セルに
1:00
を入力します。
計算式は次のようにします。
=B2-A2-$G$1
勤務時間だけでなく、作業ごとの工数管理まで行いたい場合は集計表の作り方も重要です。実務で使いやすい工数管理表の作成方法は【Excel】作業時間を集計する方法|工数管理表を効率化する実務テクニックで詳しく解説しています。
・メリット
- ルール変更に強い
- 数式修正が不要
- 保守しやすい
- 複数シートで共有しやすい
・大量データではテーブル化も有効
Excelテーブルを利用すると、
- 数式自動コピー
- 集計自動化
- フィルター管理
が簡単になります。
勤務表運用では非常に便利です。
勤務時間データを部署別や日別に分析する場合は、時間だけを抽出できるHOUR関数も便利です。集計や分析に活用したい方は【Excel】HOUR関数の使い方|時間だけを取り出して集計する方法も参考にしてください。
✅ Excel VBAで休憩時間計算をさらに自動化する方法
勤務人数が多い場合や毎月勤務表を作成する場合は、Excel関数だけでは管理が大変になることがあります。
そのような場合はExcel VBAによる自動化も有効です。
例えば、
- 月末集計を自動化
- 残業時間を自動計算
- 勤務時間を一括集計
- シフト表から勤務表を自動作成
といった運用も可能になります。
まずは関数で勤務表を作成し、運用が安定してきた段階でVBAを活用すると効率的です。
勤務時間を報告書や月次資料へ転記する場合は、「○時間○分」のような見やすい表示へ変換することもあります。時間表示のカスタマイズ方法は【Excel】TEXT関数で時間表示を変更する方法|「○時間○分」表示にも対応で解説しています。
✅ まとめ:Excelで休憩時間を自動で差し引いて勤務表を効率化しよう
Excelでは勤務時間から休憩時間を自動で差し引くことで、勤務表作成を大幅に効率化できます。
今回紹介したポイントは以下の通りです。
- 開始時間と終了時間から休憩時間を差し引ける
- 固定休憩ならTIME関数で簡単に自動化できる
- IF関数で勤務時間に応じた休憩設定が可能
- 夜勤勤務はMOD関数を利用すると安全
- 休憩時間を別セル管理すると保守性が高まる
- 大規模運用ではVBAによる自動化も有効
勤務表は毎日使うため、少しの効率化でも大きな時間短縮につながります。
まずは固定休憩の自動計算から導入し、自社の勤務ルールに合わせて発展させてみてください。