Excelで時刻に小数の時間(1.5時間、0.25時間など)を足す最短の数式は =MOD(A2+B2/24,1) です。小数時間を24で割ってシリアル値に変換し、MODで24時超えを翌日扱いに丸めます。表示形式は h:mm にしてください。
TIME関数を使う手もありますが、TIME(B2,0,0) と書くと30分が音もなく消えます。勤怠表や作業予定表で必ずつまずくポイントを、症状別の逆引き表まで含めて順に潰していきます。
▲ Date and Time サンプル
目次
- Excelの時刻は「1日=1」のシリアル値
- 方法1:小数の時間を24で割って足す(推奨)
- 方法2:TIME関数で小数の時間を足す
- TIME関数の罠1:時に小数を渡すと切り捨てられる
- TIME関数の罠2・3:分の上限とマイナス
- 24時間を超える合計を
[h]:mmで表示する - 小数時間を「引く」ときはMOD一択
- 秒の端数をなくす(ROUNDで丸める)
- 実務例:出勤時刻+勤務時間+休憩=退勤時刻
- 時刻を小数時間に戻す(逆変換)
- 症状から探す逆引き表
- まとめ
Excelの時刻は「1日=1」のシリアル値
Excelの日付・時刻はシリアル値という数値です。ルールはたった1つ、1日=1。
- 1時間 = 1/24 = 0.041666…
- 1分 = 1/1440
- 12:00 = 0.5
つまり「3.5時間を足す」は「3.5/24を足す」と同じ意味です。ここさえ理解すれば、あとの数式はすべて応用になります。
方法1:小数の時間を24で割って足す(推奨)
A2に開始時刻、B2に小数の時間(例:3.5)が入っているとします。
=MOD(A2+B2/24,1)
結果が「0.5」のような数値で出たら、書式が標準のままです。セルを選んで Ctrl+1 →「表示形式」タブ →「ユーザー定義」→ 種類欄に h:mm と入力してください。以降の数式もすべて同じ手順で書式を設定します。
| A2(開始) | B2(時間) | 結果 |
|---|---|---|
| 9:00 | 3.5 | 12:30 |
| 9:00 | 0.25 | 9:15 |
| 22:00 | 4 | 2:00(翌日) |
MODを付けないと何が壊れるか
問題は3行目です。22:00+4時間はシリアル値で1.0833。h:mm 表示では「2:00」と出るので、見た目には正しく見えます。
しかしこの値を別セルで使うと壊れます。たとえばC2に =MOD(A2+B2/24,1)(=2:00)ではなく =A2+B2/24(=1.0833)を入れておき、D2で =C2-A2(退勤-出勤)を計算すると、C2に含まれた「翌日ぶんの1」がそのまま残り、4時間ではなく 28時間 が返ってきます。24時間ぶんズレるわけです。
MOD(値,1) は小数部分だけを取り出すので、結果が常に0:00〜23:59に収まり、こうした事故を防げます。逆に「累計勤務時間」のように24時間超をそのまま残したい場合は、MODを外して =A2+B2/24 にし、書式を後述の [h]:mm にしてください。
方法2:TIME関数で小数の時間を足す
数式の意味を読みやすくしたいならTIME関数です。ただし罠が3つあるので、迷ったら方法1のままで構いません。
=A2+TIME(0,B2*60,0)
TIME関数は TIME(時,分,秒) の形。ポイントは、第1引数(時)ではなく第2引数(分)に入れていることです。B2×60で小数時間を分に変換してから渡します。分が60を超えても自動で繰り上がるので、TIME(0,210,0) は正しく3:30を返します。
TIME関数の罠1:時に小数を渡すと切り捨てられる
やりがちな失敗がこれです。
=A2+TIME(B2,0,0) ← B2が3.5のとき
TIME関数は引数の小数点以下を切り捨てます。TIME(3.5,0,0) は3:30ではなく 3:00。0.5時間=30分が消えます。エラーにならず静かに間違うので、勤怠表では致命的です。
同じ理由で、B2*60 が小数になるケース(例:0.13時間=7.8分)も切り捨てられます。秒に変換すれば実用上はほぼ足りますが、
=A2+TIME(0,0,B2*3600)
これでも小数秒は切り捨てです(0.1234時間=444.24秒 → 444秒)。厳密にやるなら結局、方法1の /24 にROUNDを組み合わせるのが正解になります。
TIME関数の罠2・3:分の上限とマイナス
- 上限:TIME関数の分は32767が上限(約546時間)。超えると
#NUM!です。大きな値を扱うなら/24方式に。 - マイナス不可:TIMEに負数を渡すと
#NUM!。引き算の場面では使えません。
24時間を超える合計を [h]:mm で表示する
複数日の作業時間を積み上げると合計が24時間を超えます。このとき通常の h:mm 書式では「26:00」が「2:00」と表示されてしまいます。
Ctrl+1 →「ユーザー定義」で次を指定してください。
[h]:mm
角カッコ付きの [h] は「24で割らずに、経過時間としての時数をそのまま表示する」という意味です。分を累計したいなら [m]、秒なら [s] を使います。
小数時間を「引く」ときはMOD一択
=A2-B2/24 で引き算はできますが、結果がマイナスになるとExcelは #### を表示してエラー扱いになります。
ここでもMODが効きます。
=MOD(A2-B2/24,1)
ExcelのMODは除数の符号に合わせて結果を返すため、MOD(-0.1,1) は0.9になります。つまり「0:00の3時間前」は自動的に「21:00」として返ります。深夜勤務のシフト表で重宝する挙動です。TIME関数はマイナスを受け付けないので、引き算ではMOD方式が明確に優位です。
秒の端数をなくす(ROUNDで丸める)
小数時間は必ずしも割り切れません。9:00に0.333時間を足すと、値は 9:19:58.8 になります。h:mm 表示では「9:20」に見えるため一見問題なさそうですが、値としては端数を抱えたままです。この値どうしを足し引きすると、合計が1分ズレることがあります。浮動小数点の丸めで「8:59:59.9」のような値が生まれるのも同じ理由です。
秒単位に丸めてしまうのが確実です。
=ROUND(MOD(A2+B2/24,1)*86400,0)/86400
86400は1日の秒数。いったん秒に直して四捨五入し、また日に戻しています。5分単位に揃えたいなら =MROUND(A2+B2/24,"0:05") も使えます。
実務例:出勤時刻+勤務時間+休憩=退勤時刻
A2に出勤時刻(9:00)、B2に実働時間(7.5)、C2に休憩時間(1)を入れた場合の退勤時刻は次のとおりです。
=MOD(A2+(B2+C2)/24,1)
9:00+8.5時間で 17:30。小数時間が複数あっても、合計してから24で割るだけで済みます。夜勤で日をまたぐケース(22:00出勤・実働8・休憩1)でも、MODが効いて 7:00 と正しく返ります。
時刻を小数時間に戻す(逆変換)
足すのと逆で、時刻を小数時間に直すには24を掛けるだけです。
=A2*24
結果セルの表示形式は「標準」または「数値」に変更してください。書式が時刻のままだと、変換後の数値がまた時刻として解釈されます。3:30 は 3.5 になります。
症状から探す逆引き表
| 症状 | 原因 | 対処 |
|---|---|---|
#### になる |
結果がマイナス | =MOD(A2-B2/24,1) |
| 30分だけ消える | TIME(B2,0,0) で小数切り捨て |
TIME(0,B2*60,0) に変更 |
| 26:00 が 2:00 と出る | 書式が h:mm |
[h]:mm に変更 |
| 結果が 0.5 など数値で出る | 書式が標準のまま | Ctrl+1 で h:mm に変更 |
#NUM! が出る |
TIMEに負数/分が32767超 | /24 方式に変更 |
| 合計が24時間ズレる | MODなしの値を差分計算に使った | MOD(値,1) で丸める |
まとめ
- 基本は
=MOD(A2+B2/24,1)。小数時間は24で割るだけ - 24時間超を残したいときはMODを外し、書式を
[h]:mmに - TIME関数は読みやすいが罠が3つ(時の小数切り捨て・32767上限・マイナス不可)。迷ったら
/24 - 引き算や深夜またぎはMOD方式一択
- 端数が気になるなら秒に直してROUND
なお、Googleスプレッドシートもシリアル値の考え方は同じで、=MOD(A2+B2/24,1) や [h]:mm 書式はそのまま使えます(書式設定は「表示形式」→「数字」→「カスタム数値形式」から)。
「1日=1」というシリアル値のルールさえ押さえておけば、時刻計算のトラブルはほぼ自力で解けるようになります。
※ #### の挙動は標準の1900年日付システム前提です。Mac版などで1904年日付システムを有効にしている場合は、負の時刻がそのまま表示されることがあります。
関連記事
- Excelで日付に日数を足す方法|+7・EDATE・WORKDAYの使い分け早見表
- Excelで特定の曜日を除いて日数を足す方法|水曜定休もWORKDAY.INTLで一発
- Excelで「5営業日後」を出す方法|WORKDAY関数で土日祝スキップ
- Excel×Claude×Power Automateで日次レポートを全自動化|5アクションで組む手順とハマりどころ5つ
- Excel LAMBDA・LET関数の作り方|Claudeに設計を頼めば自作関数はすぐ完成する