=B2-A2は、A2の開始時刻からB2の終了時刻までの時間を返します。Excelは時刻を1日の端数として保存している(12:00は0.5)ので、結果も端数になります。表示形式をh:mmにすれば8:30と読め、24を掛ければ8.5時間になります。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Hours | Decimal hours |
| 2 | 9:00 | 17:30 | 8:30 | 8.50 |
| 3 | 8:15 | 16:45 | 8:30 | 8.50 |
| 4 | 7:30 | 12:00 | 4:30 | 4.50 |
| 5 | 13:00 | 18:20 | 5:20 | 5.33 |
1行目は時刻なら8:30、数値なら8.50です。13:00から18:20までは5:20、つまり5.33時間です。人が読む結果にはh:mmの列を、給与のような計算に使うときは10進数の列を使います。標準の表示形式のセルでは、同じ結果がそのままの端数で表示され、8:30なら0.354167です。
時間や分を足す、引く
時刻に時間を足すのも同じやり方です。TIME(時, 分, 秒)で足す量を作るか、時間なら24で、分なら1440で割ります。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | Plus 1:30 | Plus 45 minutes | Minus 2 hours |
| 2 | 9:00 | 10:30 | 9:45 | 7:00 |
| 3 | 14:20 | 15:50 | 15:05 | 12:20 |
9:00からだと3つの列は10:30、9:45、7:00になり、14:20からだと15:50、15:05、12:20になります。時刻は引用符で囲んで書くこともできます。=A2+"1:30"は1時間半を足します。
日付をまたぐ時間を計算する
22:00から6:00の夜勤は始まりより「前」に終わるので、=B2-A2はマイナスの-16時間になります。時刻はマイナスになれないので、Excelはセルを#####で埋めます。MOD(B2-A2,1)はマイナスの結果に1日を足し、プラスの結果はそのままにするので、同じ列で日勤にも夜勤にも使えます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Hours | Decimal hours |
| 2 | 22:00 | 6:00 | 8:00 | 8.00 |
| 3 | 9:00 | 17:00 | 8:00 | 8.00 |
| 4 | 23:30 | 7:15 | 7:45 | 7.75 |
3つの勤務の長さは8:00、8:00、7:45です。=B2-A2+(B2<A2)という書き方もあります。終了時刻のほうが早いと比較が1になり、1日が足されます。開始と終了が完全な日時(2026-03-14 22:00)なら、ふつうの引き算で足ります。各時刻がどの日のものかは、すでに日付が示しているからです。
24時間を超える時間を合計する
h:mmは1日の時刻を表すので、24で一周します。1週間で42時間30分なら18:30と表示されます。角かっこの付いた[h]:mmの表示形式なら、一周せずに合計時間を表示します。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Hours | Total as [h]:mm |
| 2 | 8:00 | 16:30 | 8:30 | |
| 3 | 8:00 | 16:30 | 8:30 | |
| 4 | 9:00 | 17:30 | 8:30 | |
| 5 | 8:00 | 16:30 | 8:30 | |
| 6 | 8:00 | 16:30 | 8:30 | |
| 7 | Total | 18:30 | 42:30 |
C7は18:30を、D7は42:30を表示します。どちらのセルにも同じ数(1.77日)が入っていて、違うのは表示形式だけです。設定するには、ホーム > 表示形式 > その他の表示形式 > ユーザー定義で[h]:mmと入力します。合計を10進数で出すなら24を掛けて42.5です。
時刻と10進数の時間を相互に変換する
時刻に24を掛けると時間に、1440を掛けると分になります。戻すには、10進数の時間を24で割り、セルの表示形式をh:mmにします。HOURとMINUTEは時刻の部分を整数で返します。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Time | Hours | Minutes | HOUR | MINUTE | Back from hours |
| 2 | 6:45 | 6.75 | 405 | 6 | 45 | 6:45 |
| 3 | 1:20 | 1.33 | 80 | 1 | 20 | 1:20 |
| 4 | 0:50 | 0.83 | 50 | 0 | 50 | 0:50 |
6:45は6.75時間、405分で、時は6、分は45です。1:20は1.33時間です。HOURが返すのは0から23だけなので、1日を超える長さには代わりに=INT(A2*24)を使います。F列は10進数の時間を元の時刻に戻しています。ブックで=A2*24が18:00と表示されるなら、結果がA2の時刻の表示形式を引き継いでいます。セルを標準か数値にしてください。
練習: 給与と夜勤
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Rate | Pay |
| 2 | 8:30 | 16:00 | 18 |
やってみよう: D2に給与を計算してください。A2の開始からB2の終了までの時間に、C2の時給を掛けます。
| A | B | C | |
|---|---|---|---|
| 1 | Start | End | Hours |
| 2 | 22:00 | 5:30 | |
| 3 | 9:00 | 17:00 |
やってみよう: C2に勤務の長さを10進数の時間で返し、C3まで下にコピーしてください。勤務は午前0時をまたぐことがあります。
時間の結果が#####や小数で表示される理由
時間に関する疑問のほとんどは、次の3つの表示の問題です:
#####:結果がマイナスの時刻です。たいていは夜勤を=B2-A2で計算しています。=MOD(B2-A2,1)を使ってください。(列の幅が狭すぎても#####が表示されます。列を広げれば見分けられます。)- 0.354のような小数:セルが標準の表示形式です。
h:mmを適用するか、時間が欲しかったのなら24を掛けてください。 - 小さすぎる合計:合計が24時間を超え、
h:mmが一周しています。[h]:mmを使ってください。
文字列として入力された時刻('9:00や、ほかのシステムから貼り付けた値)は数値ではありません。SUMはそれを飛ばすので、そうしたセルの合計は小さすぎるか0になります。本物の時刻なら=ISNUMBER(A2)がTRUEを返し、=TIMEVALUE(A2)は"9:00"のような文字列を変換します。
よくある質問
Excelで2つの時刻の間の時間を計算するには?
終了から開始を引き(=B2-A2)、セルの表示形式をh:mmにします。時間を数値で出すなら24を掛けます。=(B2-A2)*24は8:30を8.5に変えます。
Excelで日付をまたぐ時間を計算するには?
=MOD(B2-A2,1)を使います。22:00から6:00の勤務は、ふつうの引き算では-16時間になります。MODはマイナスの結果に1日を足すので、8:00になります。
時間の合計が24時間を超えると戻ってしまうのはなぜですか?
h:mmの表示形式は1日の時刻を表すので、42時間30分は18:30と表示されます。合計の表示形式を[h]:mmにすると(ホーム > 表示形式 > その他の表示形式 > ユーザー定義)、42:30と表示されます。
Excelで時刻を10進数の時間に変換するには?
24を掛けます:=A2*24。Excelは時刻を1日の端数として保存しているので、6:45は0.28125で、24を掛けると6.75時間です。分なら1440を掛けます。
Excelで時刻に分を足すには?
=A2+TIME(0,45,0)で45分を足します。1日は1440分なので、=A2+45/1440でも同じです。TIMEは時間も受け取ります。TIME(2,30,0)は2時間半です。