Excelで勤務時間や作業時間を計算していると、
- 「時間を引き算したら ##### が表示された」
- 「終了時間から開始時間を引いたのに正しく表示されない」
- 「深夜をまたぐ勤務時間だけ計算がおかしい」
このような問題に悩んだことはありませんか?
特に勤怠表・シフト表・工数管理表では、時間の引き算は非常に頻繁に使われます。しかし、Excelの時間データには独特の仕様があり、単純な引き算だけでは正常に表示されないケースがあります。
実際、時間計算の仕組みを理解せずに表を作ると、後から勤務時間がズレたり、残業時間の集計が狂ったりする原因になります。
この記事では、
- Excelで時間の引き算ができない原因
- マイナス表示になる理由
- 「#####」が表示される対処法
- 深夜勤務や24時間超えへの対応方法
- 実務で壊れにくい時間計算の設計
まで、実務目線でわかりやすく解説します。
目次
- ✅ Excelで時間の引き算ができない主な原因
- ・時間の引き算で最も多い「#####」表示
- ・Excelでは時間が「数値」で管理されている
- ・深夜勤務で特に発生しやすい
- ✅ Excelで時間の引き算を正しく行う基本方法
- ・通常の時間計算を行う方法
- ・24時間超えに対応する表示形式
- ・深夜勤務に対応する数式
- ✅ Excelでマイナス時間を表示する方法
- ・1904日付システムを使う方法
- ・1904日付システムの注意点
- ・実務ではIF関数対応の方が安全
- ✅ Excelで時間計算がずれる原因と対策
- ・文字列になっている時間
- ・入力規則を設定する
- ・秒数が混ざっている
- ✅ Excelで実務向けの時間計算表を作るコツ
- ・開始日と終了日を分ける
- ・時間だけで管理しない
- ・VBAで自動化する考え方
- ✅ 時間計算でよくある実務トラブル
- ・コピー時に表示形式が崩れる
- ・CSV出力で時間形式が壊れる
- ・24時間超えが正常表示されない
- ✅ まとめ:Excelの時間の引き算とマイナス表示を正しく理解しよう
✅ Excelで時間の引き算ができない主な原因
Excelで時間計算をすると、「普通の数字と同じ感覚」で扱ってしまう人が非常に多いです。しかしExcelの時間は、実は“時刻データ”として内部管理されています。
そのため、単純に引き算しただけでは正しく表示されないケースがあります。
特に実務では、
- 深夜勤務
- 日付をまたぐ作業
- マイナス時間
- 24時間超え
などが絡むと、一気にトラブルが増えます。
ここを理解せずに勤怠表を作ると、「合計時間がおかしい」「残業時間がマイナスになる」など、後から大きな修正が必要になることもあります。
・時間の引き算で最も多い「#####」表示
たとえば、
| 開始時間 | 終了時間 | 計算式 |
|---|---|---|
| 18:00 | 09:00 | "=B2-A2" |
この場合、結果が「#####」になることがあります。
これはExcelがマイナス時間を通常表示できないためです。
特にWindows版Excelでは、1900日付システムが使われているため、負の時間をそのまま表示できません。
・Excelでは時間が「数値」で管理されている
Excelでは、
- 1日 = 1
- 12時間 = 0.5
- 6時間 = 0.25
というように、時間を小数で管理しています。
つまり「18:00→09:00」のように終了時刻が小さい場合、Excelは「負の値」と認識します。
その結果、正常表示できず「#####」になるのです。
・深夜勤務で特に発生しやすい
実務で最も多いのは、
- 夜勤
- シフト制
- 日跨ぎ業務
です。
たとえば、
| 開始 | 終了 |
|---|---|
| 22:00 | 05:00 |
この場合、本来は7時間ですが、そのまま引き算すると負の時間になります。
勤怠表でここを考慮していないと、全体集計まで壊れる原因になります。
深夜勤務や休憩時間を含めた「実務で壊れにくい勤務時間計算」を作りたい場合は、こちらもあわせて確認してみてください。
→ 「【Excel】勤務時間を自動計算する方法|休憩時間や残業計算まで対応」
✅ Excelで時間の引き算を正しく行う基本方法
時間計算では、「終了時間−開始時間」をそのまま計算するだけでは不十分なケースがあります。
特に日付をまたぐ可能性がある場合は、最初から対応できる式にしておくことが重要です。
後から修正すると、勤務表全体の数式変更が必要になることもあります。
・通常の時間計算を行う方法
まずは基本形です。
| 開始 | 終了 | 結果 |
|---|---|---|
| 09:00 | 18:00 | 9:00 |
数式は以下です。
セルC2に:
"=B2-A2"
を入力します。
その後、表示形式を「時刻」に設定します。
手順
- 計算セルを選択
- 右クリック
- 「セルの書式設定」
- 「時刻」を選択
これで通常の勤務時間は計算できます。
・24時間超えに対応する表示形式
勤務時間の合計では、24時間を超えるケースがあります。
しかし通常の「hh:mm」では、24時間ごとにリセットされます。
たとえば25時間なら「1:00」と表示されることがあります。
これを防ぐには、
"[h]:mm"
を使用します。
設定手順
- セルを右クリック
- 「セルの書式設定」
- 「ユーザー定義」
- 種類に
"[h]:mm"
を入力
これで24時間以上も正しく表示できます。
・深夜勤務に対応する数式
日付をまたぐ場合は、以下の式が非常に重要です。
"=IF(B2<A2,B2+1-A2,B2-A2)"
この式では、
- 終了時間が開始時間より小さい
→ 翌日扱い
として計算します。
実例
| 開始 | 終了 | 結果 |
|---|---|---|
| 22:00 | 05:00 | 7:00 |
実務では、この形を最初から使うケースが非常に多いです。
✅ Excelでマイナス時間を表示する方法
Excelでは、通常設定のままだと負の時間表示に対応していません。
しかし、業務内容によっては、
- 遅刻時間
- 不足時間
- 工数差分
- 残業不足
などをマイナス表示したい場面があります。
ここを知らないと、「なぜExcelだけ表示できないの?」と混乱しやすいポイントです。
・1904日付システムを使う方法
Mac版Excelでは比較的使われる方式ですが、Windowsでも設定可能です。
手順
- 「ファイル」
- 「オプション」
- 「詳細設定」
- 「次のブックを計算するとき」
- 「1904年から計算する」をON
これでマイナス時間を表示できます。
・1904日付システムの注意点
ただし、この方法には大きな注意があります。
既存データの日付がズレる可能性があります。
他ブックと連携している場合、
- 日付が4年ズレる
- データ不整合
- CSV出力時の異常
などが起こるケースがあります。
そのため、実務では安易に変更しない方が安全です。
・実務ではIF関数対応の方が安全
多くの実務現場では、
"=IF(B2-A2<0,""-"",B2-A2)"
のように、負数を制御する方法がよく使われます。
あるいは、
"=ABS(B2-A2)"
で絶対値表示するケースもあります。
運用ルールに合わせて設計することが重要です。
時間の差分を計算できるようになると、遅刻・早退・欠勤判定まで自動化できるようになります。実務向けの勤怠管理表を作りたい方は、こちらも参考にしてみてください。
→ 「【Excel】IF関数で遅刻・欠勤・早退を自動判定する方法|勤怠管理を効率化」
✅ Excelで時間計算がずれる原因と対策
時間計算では、「式は合っているのに結果がおかしい」というケースも多くあります。
特に入力データ側の問題は見落とされやすく、後から集計ミスにつながります。
時間計算は“数式”だけでなく、“入力ルール”も重要です。
・文字列になっている時間
非常によくあるのがこれです。
たとえば、
- '09:00
- 9時00分
- 半角と全角混在
などです。
これらは時刻ではなく文字列扱いになります。
確認方法
セルを選択して、
- 左寄せ
- エラー表示
- 数式計算されない
場合は文字列の可能性があります。
・入力規則を設定する
実務では入力ミスを減らすことが重要です。
設定方法
- セル範囲を選択
- 「データ」
- 「データの入力規則」
- 「時刻」を指定
これで異常入力を防ぎやすくなります。
・秒数が混ざっている
時間データに秒が含まれていると、
- 8:59
- 9:00
のような微妙なズレが発生します。
特に勤怠システム連携では起きやすいです。
表示だけでは見えないこともあるため、
"=ROUND(セル*24,2)"
などで調整するケースもあります。
✅ Excelで実務向けの時間計算表を作るコツ
時間計算は、最初の設計が非常に重要です。
「とりあえず動く表」を作ると、後から必ず修正が増えます。
特に人数が増えるほど、
- 入力ミス
- 集計崩れ
- 深夜勤務エラー
が発生しやすくなります。
・開始日と終了日を分ける
実務では、
| 開始日 | 開始時間 | 終了日 | 終了時間 |
のように管理すると安全です。
この方式なら、深夜勤務でも自然に計算できます。
・時間だけで管理しない
「22:00→05:00」だけでは、日付跨ぎをExcelが判断できません。
しかし、
| 2026/05/01 22:00 |
| 2026/05/02 05:00 |
なら正常計算できます。
大規模運用ではこちらが推奨されます。
実務の勤怠表では、深夜勤務・残業・エラー箇所を色分けして管理するケースも多くあります。見やすさを維持しながら表を設計したい方は、こちらもあわせて確認してみてください。
→ 「【Excel】色・強調表示の使い方完全ガイド|見やすさを損なわない設計ルール」
・VBAで自動化する考え方
大量の勤怠データを扱う場合は、ExcelVBAで自動化するケースもあります。
たとえば、
- 深夜勤務判定
- 残業時間集計
- 休憩時間控除
- シフト別集計
などを自動化できます。
特に毎月大量の勤怠表を処理する現場では、関数だけより管理しやすくなるケースもあります。
✅ 時間計算でよくある実務トラブル
時間計算は「見た目では正常」に見えても、内部でズレているケースがあります。
ここを軽視すると、後から集計全体が壊れることがあります。
・コピー時に表示形式が崩れる
数式だけコピーすると、
- 時間表示
- 数値表示
が崩れることがあります。
そのため、実務では「表示形式込み」で管理することが重要です。
・CSV出力で時間形式が壊れる
CSVは書式情報を保持しません。
そのため、
- 8:00 → 0.333333
のようになるケースがあります。
CSV連携時は注意が必要です。
・24時間超えが正常表示されない
通常の「hh:mm」形式では、
- 27時間
- 32時間
などを正しく表示できません。
勤怠集計では非常に多いミスです。
必ず、
"[h]:mm"
を使用するようにしましょう。
✅ まとめ:Excelの時間の引き算とマイナス表示を正しく理解しよう
Excelの時間計算は、普通の数値計算とは仕組みが異なります。
特に、
- 深夜勤務
- 日付跨ぎ
- 24時間超え
- マイナス時間
では、Excel特有の仕様を理解しておくことが非常に重要です。
今回の記事のポイントです。
- Excelの時間は内部的には数値管理されている
- マイナス時間は通常表示できない
- 「#####」は負の時間エラーの可能性が高い
- 深夜勤務はIF関数で翌日処理する
- 24時間超えは"[h]:mm"形式を使う
- 実務では日付込み管理が安全
- 入力規則でミス防止すると運用しやすい
時間計算は、勤怠管理・工数管理・シフト表など、多くの実務で使われます。
最初に正しい設計を理解しておくことで、後から大規模修正するリスクを大きく減らせます。