Menu

Excelで時間を計算する方法: 2つの時刻の間の時間

=B2-A2は、A2の開始時刻からB2の終了時刻までの時間を返します。h:mmの表示形式で8:30と表示するか、24を掛けて8.5時間にします。日付をまたぐ勤務、24時間を超える合計、勤務時間からの給与も学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=B2-A2は、A2の開始時刻からB2の終了時刻までの時間を返します。Excelは時刻を1日の端数として保存している(12:00は0.5)ので、結果も端数になります。表示形式をh:mmにすれば8:30と読め、24を掛ければ8.5時間になります。

勤務時間
C2
ABCD
1StartEndHoursDecimal hours
29:0017:308:308.50
38:1516:458:308.50
47:3012:004:304.50
513:0018:205:205.33
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

1行目は時刻なら8:30、数値なら8.50です。13:00から18:20までは5:20、つまり5.33時間です。人が読む結果にはh:mmの列を、給与のような計算に使うときは10進数の列を使います。標準の表示形式のセルでは、同じ結果がそのままの端数で表示され、8:30なら0.354167です。

時間や分を足す、引く

時刻に時間を足すのも同じやり方です。TIME(時, 分, 秒)で足す量を作るか、時間なら24で、分なら1440で割ります。

時間を足す、引く
B2
ABCD
1StartPlus 1:30Plus 45 minutesMinus 2 hours
29:0010:309:457:00
314:2015:5015:0512: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日を足し、プラスの結果はそのままにするので、同じ列で日勤にも夜勤にも使えます。

日付をまたぐ勤務
C2
ABCD
1StartEndHoursDecimal hours
222:006:008:008.00
39:0017:008:008.00
423:307:157:457.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の表示形式なら、一周せずに合計時間を表示します。

週の合計: h:mmと[h]:mm
C7
ABCD
1StartEndHoursTotal as [h]:mm
28:0016:308:30
38:0016:308:30
49:0017:308:30
58:0016:308:30
68:0016:308:30
7Total18:3042:30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

C7は18:30を、D7は42:30を表示します。どちらのセルにも同じ数(1.77日)が入っていて、違うのは表示形式だけです。設定するには、ホーム > 表示形式 > その他の表示形式 > ユーザー定義で[h]:mmと入力します。合計を10進数で出すなら24を掛けて42.5です。

時刻と10進数の時間を相互に変換する

時刻に24を掛けると時間に、1440を掛けると分になります。戻すには、10進数の時間を24で割り、セルの表示形式をh:mmにします。HOURとMINUTEは時刻の部分を整数で返します。

時刻と10進数の時間
B2
ABCDEF
1TimeHoursMinutesHOURMINUTEBack from hours
26:456.754056456:45
31:201.33801201:20
40:500.83500500: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の時刻の表示形式を引き継いでいます。セルを標準か数値にしてください。

練習: 給与と夜勤

やってみよう: 1日の給与
D2
ABCD
1StartEndRatePay
28:3016:0018
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: D2に給与を計算してください。A2の開始からB2の終了までの時間に、C2の時給を掛けます。

やってみよう: 日付をまたぐ時間
C2
ABC
1StartEndHours
222:005:30
39:0017: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時間半です。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める