Excel一覧 Excel関数 時間・日付計算 計算・数値処理

【Excel】時間の引き算ができない原因とは?マイナス表示の対処法まで解説

Excelで勤務時間や作業時間を計算していると、

  • 「時間を引き算したら ##### が表示された」
  • 「終了時間から開始時間を引いたのに正しく表示されない」
  • 「深夜をまたぐ勤務時間だけ計算がおかしい」

このような問題に悩んだことはありませんか?

特に勤怠表・シフト表・工数管理表では、時間の引き算は非常に頻繁に使われます。しかし、Excelの時間データには独特の仕様があり、単純な引き算だけでは正常に表示されないケースがあります。

実際、時間計算の仕組みを理解せずに表を作ると、後から勤務時間がズレたり、残業時間の集計が狂ったりする原因になります。

この記事では、

  • Excelで時間の引き算ができない原因
  • マイナス表示になる理由
  • 「#####」が表示される対処法
  • 深夜勤務や24時間超えへの対応方法
  • 実務で壊れにくい時間計算の設計

まで、実務目線でわかりやすく解説します。

✅ Excelで時間の引き算ができない主な原因

Excelで時間計算をすると、「普通の数字と同じ感覚」で扱ってしまう人が非常に多いです。しかしExcelの時間は、実は“時刻データ”として内部管理されています。

そのため、単純に引き算しただけでは正しく表示されないケースがあります。

特に実務では、

  • 深夜勤務
  • 日付をまたぐ作業
  • マイナス時間
  • 24時間超え

などが絡むと、一気にトラブルが増えます。

ここを理解せずに勤怠表を作ると、「合計時間がおかしい」「残業時間がマイナスになる」など、後から大きな修正が必要になることもあります。

・時間の引き算で最も多い「#####」表示

たとえば、

開始時間終了時間計算式
18:0009:00"=B2-A2"

この場合、結果が「#####」になることがあります。

これはExcelがマイナス時間を通常表示できないためです。

特にWindows版Excelでは、1900日付システムが使われているため、負の時間をそのまま表示できません。

・Excelでは時間が「数値」で管理されている

Excelでは、

  • 1日 = 1
  • 12時間 = 0.5
  • 6時間 = 0.25

というように、時間を小数で管理しています。

つまり「18:00→09:00」のように終了時刻が小さい場合、Excelは「負の値」と認識します。

その結果、正常表示できず「#####」になるのです。

・深夜勤務で特に発生しやすい

実務で最も多いのは、

  • 夜勤
  • シフト制
  • 日跨ぎ業務

です。

たとえば、

開始終了
22:0005:00

この場合、本来は7時間ですが、そのまま引き算すると負の時間になります。

勤怠表でここを考慮していないと、全体集計まで壊れる原因になります。

深夜勤務や休憩時間を含めた「実務で壊れにくい勤務時間計算」を作りたい場合は、こちらもあわせて確認してみてください。
→ 「【Excel】勤務時間を自動計算する方法|休憩時間や残業計算まで対応


✅ Excelで時間の引き算を正しく行う基本方法

時間計算では、「終了時間−開始時間」をそのまま計算するだけでは不十分なケースがあります。

特に日付をまたぐ可能性がある場合は、最初から対応できる式にしておくことが重要です。

後から修正すると、勤務表全体の数式変更が必要になることもあります。

・通常の時間計算を行う方法

まずは基本形です。

開始終了結果
09:0018:009:00

数式は以下です。

セルC2に:

"=B2-A2"

を入力します。

その後、表示形式を「時刻」に設定します。

手順

  1. 計算セルを選択
  2. 右クリック
  3. 「セルの書式設定」
  4. 「時刻」を選択

これで通常の勤務時間は計算できます。

・24時間超えに対応する表示形式

勤務時間の合計では、24時間を超えるケースがあります。

しかし通常の「hh:mm」では、24時間ごとにリセットされます。

たとえば25時間なら「1:00」と表示されることがあります。

これを防ぐには、

"[h]:mm"

を使用します。

設定手順

  1. セルを右クリック
  2. 「セルの書式設定」
  3. 「ユーザー定義」
  4. 種類に

"[h]:mm"

を入力

これで24時間以上も正しく表示できます。

・深夜勤務に対応する数式

日付をまたぐ場合は、以下の式が非常に重要です。

"=IF(B2<A2,B2+1-A2,B2-A2)"

この式では、

  • 終了時間が開始時間より小さい
    → 翌日扱い

として計算します。

実例

開始終了結果
22:0005:007:00

実務では、この形を最初から使うケースが非常に多いです。


✅ Excelでマイナス時間を表示する方法

Excelでは、通常設定のままだと負の時間表示に対応していません。

しかし、業務内容によっては、

  • 遅刻時間
  • 不足時間
  • 工数差分
  • 残業不足

などをマイナス表示したい場面があります。

ここを知らないと、「なぜExcelだけ表示できないの?」と混乱しやすいポイントです。

・1904日付システムを使う方法

Mac版Excelでは比較的使われる方式ですが、Windowsでも設定可能です。

手順

  1. 「ファイル」
  2. 「オプション」
  3. 「詳細設定」
  4. 「次のブックを計算するとき」
  5. 「1904年から計算する」をON

これでマイナス時間を表示できます。

・1904日付システムの注意点

ただし、この方法には大きな注意があります。

既存データの日付がズレる可能性があります。

他ブックと連携している場合、

  • 日付が4年ズレる
  • データ不整合
  • CSV出力時の異常

などが起こるケースがあります。

そのため、実務では安易に変更しない方が安全です。

・実務ではIF関数対応の方が安全

多くの実務現場では、

"=IF(B2-A2<0,""-"",B2-A2)"

のように、負数を制御する方法がよく使われます。

あるいは、

"=ABS(B2-A2)"

で絶対値表示するケースもあります。

運用ルールに合わせて設計することが重要です。

時間の差分を計算できるようになると、遅刻・早退・欠勤判定まで自動化できるようになります。実務向けの勤怠管理表を作りたい方は、こちらも参考にしてみてください。
→ 「【Excel】IF関数で遅刻・欠勤・早退を自動判定する方法|勤怠管理を効率化


✅ Excelで時間計算がずれる原因と対策

時間計算では、「式は合っているのに結果がおかしい」というケースも多くあります。

特に入力データ側の問題は見落とされやすく、後から集計ミスにつながります。

時間計算は“数式”だけでなく、“入力ルール”も重要です。

・文字列になっている時間

非常によくあるのがこれです。

たとえば、

  • '09:00
  • 9時00分
  • 半角と全角混在

などです。

これらは時刻ではなく文字列扱いになります。

確認方法

セルを選択して、

  • 左寄せ
  • エラー表示
  • 数式計算されない

場合は文字列の可能性があります。

・入力規則を設定する

実務では入力ミスを減らすことが重要です。

設定方法

  1. セル範囲を選択
  2. 「データ」
  3. 「データの入力規則」
  4. 「時刻」を指定

これで異常入力を防ぎやすくなります。

・秒数が混ざっている

時間データに秒が含まれていると、

  • 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"形式を使う
  • 実務では日付込み管理が安全
  • 入力規則でミス防止すると運用しやすい

時間計算は、勤怠管理・工数管理・シフト表など、多くの実務で使われます。

最初に正しい設計を理解しておくことで、後から大規模修正するリスクを大きく減らせます。

    -Excel一覧, Excel関数, 時間・日付計算, 計算・数値処理