エクセルで日時の引き算をするときは、終了の日時から開始の日時を引いて、表示形式を [h]:mm にします。日付をまたいでも、2日以上離れていても、そのまま正しい時間が出ます。
この記事では、時間・分・「○日○時間」で出す式と、日付と時刻が別の列にあるときの式を、実際の Excel で確かめました。分に直すときに INT を使うと 1 分ずれる落とし穴もあります。
日時の引き算の式 一覧
| 出したいもの | 式 | 例(11/1 22:00〜11/2 6:30) |
|---|---|---|
| 時間(時:分) | =B4-A4(表示形式 [h]:mm) | 8:30 |
| 時間(数値) | =(B4-A4)*24 | 8.50 |
| 分 | =ROUND((B4-A4)*1440,0) | 510 |
| ○日○時間○分 | =INT(B4-A4)&"日"&TEXT(B4-A4,"h時間mm分") | 0日8時間30分 |
1. 終了から開始を引いて、[h]:mm で表示する
開始日時を A 列、終了日時を B 列に「2026/11/1 22:00」のように入れます。C4 に =B4-A4 と入れ、表示形式を「ユーザー定義」の [h]:mm にします。
![エクセルで終了日時から開始日時を引いて表示形式を[h]:mmにして日をまたぐ時間や2日以上の時間を出した画面](https://excel15.com/wp-content/uploads/2026/11/d1-1.png)
夜 22:00 から翌朝 6:30 までは 8:30、11/1 9:00 から 11/3 17:45 までは 56:45 になりました。日付も一緒に入っているので、日をまたいでもマイナスになりません。表示形式のくわしい説明は時間の表示形式をご覧ください。
2. 時間を数値で出す(×24)
エクセルの日時は「1 日=1」の数です。差に 24 を掛けると、時間の数になります。時給の計算などはこちらを使います。
=(B4-A4)*24

3. 分で出す(×1440 と ROUND)
1 日は 1440 分なので、差に 1440 を掛けると分になります。小数のずれをなくすため、ROUND で丸めます。理由は後の【実機で検証】で説明します。
=ROUND((B4-A4)*1440,0)

4. 「○日○時間○分」で表示する
日数は INT で整数の部分を取り出し、残りの時間は TEXT で文字にしてつなげます。
=INT(B4-A4)&"日"&TEXT(B4-A4,"h時間mm分")

TEXT の h は 24 時間ごとに戻るので、日数と組み合わせて使います。結果は文字なので、計算には 1〜3 の式を使います。
5. 日付と時刻が別の列にあるとき
開始日・開始時刻・終了日・終了時刻が別々の列にあるときは、日付と時刻を足して日時にしてから引きます。
=(C4+D4)-(A4+B4)

時刻だけを =D4-B4 で引くと、6:30 − 22:00 でマイナスになり、セルは「#######」になりました。日付の列が無く、日をまたぐのが必ず 1 日以内なら、=MOD(D4-B4,1) でも 8:30 になります。勤務時間の計算は時間の足し算・引き算もご覧ください。
【実機で検証】日時の引き算でつまずくところ

| ためしたこと | 結果 |
|---|---|
56 時間 45 分を h:mm で表示 | 8:45(24 時間ごとに戻る) |
56 時間 45 分を [h]:mm で表示 | 56:45 |
| 開始と終了を逆に引く | #######(中身は -0.354…) |
9:00〜9:02 を INT((C-B)*1440) で分にする | 1(2 分のはずが 1 分) |
9:00〜9:02 を ROUND((C-B)*1440,0) で分にする | 2 |
文字で入った日時を =C-B で引く | 8:30(計算できた) |
文字で入った日時を SUM(C)-SUM(B) で引く | 0:00(SUM は文字を 0 にする) |
INT で分にすると、1 分少なくなることがあります。時刻の数はコンピューターの中でわずかに小さく表されることがあり、INT はそれを切り捨てます。9:00 から 1 分刻みで終わりの時刻を変えて 179 通り試したところ、47 通りで INT の結果が ROUND より 1 少なくなりました。分にするときは ROUND を使います。
文字の日時は引き算ならそのまま計算できましたが、SUM で集計すると 0 になります。文字になっているかは、セルが左寄せになっているかで見分けられます。
よくある質問
日時の差がマイナスになるときは?
開始と終了が逆になっていないか確かめます。日付を入れずに時刻だけで日をまたぐと、終了の時刻のほうが小さくなりマイナスになります。日付も入れるか、MOD(終了-開始,1) を使います。
日数だけを出したいときは?
=INT(B4-A4) で、何日たったかの整数が出ます。11/1 9:00 から 11/3 17:45 なら 2 です。日付どうしの日数は引き算のやり方でも説明しています。
今の日時からの経過時間を出すには?
=NOW()-A4 で、A4 の日時から今までの時間になります。表示形式を [h]:mm にします。NOW はブックを開いたり再計算したりするたびに新しい時刻に変わります。

コメント