🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel で時刻を小数の時間に変換する —— ×24 のコツ(と労働時間の計算)

|

Excel で時刻を小数の時間に変換する —— ×24 のコツ(と労働時間の計算)

要点 — Excel は時刻を 1 日を 1 とした小数として格納するので、8:158.25 ではなく数値 0.34375 です。小数の時間にするには 24 を掛けます —— =A2 * 248:158.25 にします。二つの時刻のあいだの労働時間は =(end - start) * 24hours * rate* 24 を足すまで 24 倍小さく出るのは このためです。深夜 0 時をまたぐ夜勤では、引き算を MOD で包んで負の小数を前へ 送ります: =MOD(end - start, 1) * 24

=A2 * 24                        ' 8:15  -> 8.25   (小数の時間)
=(B2 - A2) * 24                 ' 09:00 から 17:30 -> 8.5 時間
=(B2 - A2) * 24 * 20            ' 8.5 時間 × 時給 $20 -> 170  (金額)
=MOD(B2 - A2, 1) * 24           ' 22:00 から 06:00 -> 8      (深夜 0 時をまたぐ)
=(B2 - A2 - C2) * 24            ' 0:30 の無給休憩を引く -> 8.0

給与計算、タイムシート、請求対象時間、機械の稼働時間 —— 遅かれ早かれ、時計の読みでは なく掛け算できる数値としての時刻が必要になります。厄介なのは、Excel の時計の値が 8:15 に見えて実際は 0.34375 だということです。だからここで起きる「なぜ合計が おかしいのか」という疑問はすべて、小数を時間に変換し忘れたことに行き着きます。掛け算 一つで直ります。このガイドでは、その変換、それが解決する時給のバグ、深夜またぎのコツ、 そして丸めをどこで行うべきかを扱います。

このガイドで学べること

  • なぜ時刻は小数なのか、そして × 24 がどうそれを小数の時間に変えるのか
  • 二つの時刻のあいだの労働時間を計算する
  • 時間 × 時給 のバグ —— そしてなぜ答えがちょうど 24 倍小さいのか
  • 深夜 0 時をまたぐ夜勤のための MOD のコツ
  • 無給休憩の差し引きと、15 分単位への丸め

基本となる考え方: Excel は日数で数えるので 24 を掛ける

Excel のシリアルな時計は日数を数えます。真夜中は 0.0、そして各時間が 1 日の 1/24 を加えるので、6:000.258:158.25 / 24 = 0.34375 です。これは 時刻を格納足し合わせるには申し分ない数値ですが、誰かに支払うには役立ちません —— 0.34375 を請求される人はいません。24 を掛けると、1 日の小数が、あなたが実際に 欲しい単位へと拡大されます。

=A2 * 24        ' 1 日の小数  -> 小数の時間   (0.34375 -> 8.25)
=A2 * 1440      ' -> 合計の分   (24 * 60)
=A2 * 86400     ' -> 合計の秒   (24 * 60 * 60)

こう捉えてください。数値はすでに正しく、× 24 は単位を日から時間へ変えるだけです。 以下はすべて、この一つの考え方を実際のタイムシートに当てはめたものです。

二つの時刻のあいだの労働時間

終了から開始を引くと、経過した1 日の小数が得られます。それに 24 を掛けます。

' A2 = 09:00 (開始), B2 = 17:30 (終了)
=B2 - A2         ' -> 0.354167   (小数。書式は 8:30 と表示したがる)
=(B2 - A2) * 24  ' -> 8.5        (給与計算に使える小数の時間)

* 24 を省くと、Excel は嬉々として 0.3541678:30 と表示し、それは正しく見え ます —— それで計算しようとするまでは。

時給の罠: ちょうど 24 倍小さい

これはタイムシートで一番多いエラーです。小数に見える時間と時給があるので掛け算する —— すると給与額がとんでもないことになります。

' B2 - A2 は 0.354167 (8:30 と表示される)
=(B2 - A2) * 20        ' -> 7.083...   誤り (8.5 時間で $7 に見える)
=(B2 - A2) * 24 * 20   ' -> 170        正しい ($20 × 8.5 時間)

誤った答えは 170 / 24 = 7.08 —— 毎回きっかり 24 という係数だけずれます。時間では なく1 日の小数に時給を掛けたからです。直し方は特別な関数ではなく、金額の計算の前に 日を時間へ変換する、あの抜け落ちた * 24 です。

夜勤: 深夜またぎのための MOD のコツ

出勤より早く退勤する —— 22:00 から 06:00 —— と、end - startになり (0.25 − 0.9167 = −0.6667)、####### と表示されます。エレガントな直し方は MOD(..., 1) です。差を 1 日で剰余にとると、負の小数が正しい正の区間へと前送り されます。

' A2 = 22:00 (開始), B2 = 06:00 (終了、翌朝)
=(B2 - A2) * 24          ' -> -16     誤り。書式次第で ####### と表示される
=MOD(B2 - A2, 1) * 24    ' -> 8       正しい: 夜通しで 8 時間

MOD(diff, 1) はシフトが深夜をまたごうがまたぐまいが働くので、終了が「翌日」になり うるあらゆる経過時間の列にとって安全な既定手段です。(シフトが 24 時間を超えうるなら、 時刻だけでなく本物の開始日付が必要です —— 完全なタイムスタンプを格納しましょう。)

休憩と、請求対象時間の丸め

無給休憩は括弧の中でのもう一つの引き算にすぎず、最後の * 24 まではずっと 1 日の 小数のままです。

' A2 開始, B2 終了, C2 = 0:30 の無給休憩 (時刻としての 0.5 時間)
=(B2 - A2 - C2) * 24     ' -> 8.0    正味の支給対象時間

丸めは変換の、小数の時間に対して行いましょう。そうすれば丸めの単位が直感的に なります。

=MROUND(A2 * 24, 0.25)   ' 最も近い 15 分単位  (8.20 -> 8.25)
=CEILING(A2 * 24, 0.25)  ' 請求対象時間を常に 15 分単位に切り上げる

逆方向に —— 小数の時間を h:mm の時刻に戻す —— には、24 で割って時刻書式にします: =8.5 / 24 を時刻として表示すると 8:30 です。

判断のしどころ

  • 時間に対して支払う・請求する → どんな掛け算のにも * 24 で小数の時間に 変換します。時給の計算が見るべきは 8.5 であって、0.354 ではありません。
  • 終了が翌朝になりうる列 → 既定は MOD(end - start, 1) * 24。深夜またぎがあっても なくても正しく働きます。
  • これからも計算し続ける合計h:mm の時刻ではなく、小数の時間(ただの数値)で 格納します。数値は時刻書式のように 24 で折り返しません。
  • 人が読む経過時間の合計 → 変換せずに時刻のまま [h]:mm 書式を使います —— 24 時間を超える時間の合計を参照してください。
  • 丸め → 生の小数ではなく小数の時間を MROUND/CEILING で丸めます。そうすれば 「最も近い 0.25」が 4 分の 1 時間を意味します。

ExcelMaster はどう役立つか

× 24 は目に見えない知識です —— 親しみやすい 8:30 が実は 0.354 だと画面上の 何も教えてくれないので、時給のバグは絶えず本番に出荷されます。ExcelMaster は タイムシートの意図(「時間を合計する」「この時給で支払う」「夜勤」)を認識し、数式全体 を書きます —— 変換、夜通し区間のための MOD、休憩の差し引き、正しい丸め —— だから 給与計算に届く数値は、1 日の小数ではなく時間になります。あなたはシフトを述べ、ツールが Excel の隠す算術を行います。

よくある質問

Excel で hh:mm を小数の時間に変換するには?

24 を掛けます: =A2 * 24。Excel は時刻を 1 日の小数として格納するので、8:150.34375 で、× 24 がそれを 8.25 の小数の時間に拡大します。結果セルは時刻ではなく ただの数値として書式設定しましょう。

なぜ 時間 × 時給 の計算が間違うのですか?

時間ではなく1 日の小数に時給を掛けたので、答えがちょうど 24 倍小さくなります。 =(end - start) * 24 * rate を使いましょう。* 24 が金額の計算の前に小数を時間へ 変換します。

深夜 0 時をまたぐ夜勤の時間を計算するには?

=MOD(end - start, 1) * 24 を使います。MOD(..., 1) が負の差を正しい正の区間へ 前送りするので、22:00 から 06:008 を返します。通常の日中シフトでも働くので、 安全な既定手段です。

1 週間ぶんの労働時間を合計するには?

小数の時間の列を =SUM(...) で合計するか、時刻の列を合計して 24 時間でリセットしない よう [h]:mm で書式設定します —— 24 時間を超える時間の合計を 参照してください。

労働時間を最も近い 15 分単位に丸めるには?

先に変換してから丸めます: =MROUND(A2 * 24, 0.25) が小数の時間を最も近い 0.25 に そろえます。請求対象時間を常に切り上げるには CEILING(A2 * 24, 0.25) を使います。

検証環境

検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-25。

関連ガイド: Excel TIME・HOUR・MINUTE・SECOND · 24 時間を超える時間の合計 · Excel INT・TRUNC・MOD · Excel MROUND・CEILING・FLOOR · Excel DATEVALUE と TIMEVALUE