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

Excel TIME・HOUR・MINUTE・SECOND — 時刻の裏にある小数を読み取り、組み立てる

|

Excel TIME・HOUR・MINUTE・SECOND — 時刻の裏にある小数を読み取り、組み立てる

要点 — Excel は時刻を 1 日(24 時間)を 1 とした小数として格納します。真夜中は 0、6:00 AM は 0.25、正午は 0.5、6:00 PM は 0.75 です。HOURMINUTESECOND はその小数から整数のパーツを読み取りTIME(hour, minute, second) は パーツから小数を組み立てて、深夜 0 時をまたぐと折り返します=TIME(25,0,0) → 1:00 AM)。TIMEVALUE"2:30 PM" のようなテキストの時刻を小数 0.6042 に 変えます。心に刻んでおくべきことは一つ —— これらの関数が読むのは時計の文字盤で あって、経過時間ではありません。30 時間の経過時間に対する HOUR30 ではなく 6 です。

=HOUR("6:00 AM")          ' -> 6
=MINUTE("14:37")          ' -> 37
=SECOND("14:37:20")       ' -> 20
=TIME(14, 30, 0)          ' -> 0.604167  (時刻書式にすると 2:30 PM)
=TIME(25, 0, 0)           ' -> 0.041667  (折り返して 1:00 AM)
=TIMEVALUE("2:30 PM")     ' -> 0.604167  (1 日の端数)

タイムスタンプの列があってピボット用に「時」が欲しい、あるいは二つの入力セルから 08:30 を組み立てたい、あるいは時刻がテキストとして届いて言うことを聞かない —— 四つの関数はそれぞれ一つの仕事をこなします。そして四つとも、時刻が 0 と 1 のあいだの ただの数値だというイメージを持った瞬間に腑に落ちます。このガイドでは、その考え方、 人を驚かせる折り返しの挙動、そしてこれらの関数が最適な道具でなくなり素の算術に バトンを渡す境界線を扱います。

このガイドで学べること

  • 基本となる考え方: 時刻は 1 日を 1 とした小数(0 〜 1)
  • HOUR / MINUTE / SECOND は時計の文字盤を読む —— そしてなぜそれが経過時間ではないのか
  • TIME はパーツから小数を組み立て、24 時間で折り返す
  • TIMEVALUE はテキストとして届いた時刻を救い出す
  • 判断のしどころ: パーツを読むときと、算術で計算するとき

基本となる考え方: 時刻は 1 日を 1 とした小数

セルに 6:00 AM と入力すると、Excel は 0.25 —— 24 時間の 1 日の 4 分の 1 の 地点 —— を格納し、それを時刻書式で着飾らせます。このたった一つの事実が、以下の すべての関数を説明します。裏にある値が小数なので、HOUR は何か魔法のように 「抽出」しているわけではありません。小数を掛け戻して、整数部分の時間をあなたに 手渡しているだけです。

' A2 は 6:00 AM を表示。裏側の数値は 0.25
=A2 * 24        ' -> 6      (1 日の 0.25 = 6 時間)
=HOUR(A2)       ' -> 6      (同じ答え。きれいな整数として)

このイメージを持ってください。関数は小数に対して働き、時刻書式はその上に塗られた 衣装にすぎません。 これから続くこと —— 折り返し、「なぜ経過時間がおかしいのか」、 テキスト時刻の罠 —— はすべて、裏にある小数の帰結です。

HOUR・MINUTE・SECOND は時計の文字盤を読む

三つの読み取り役は、時刻値から対応するパーツを取り出し、常に決まった範囲の整数を 返します。HOUR023MINUTESECOND059 です。

=HOUR("14:37:20")    ' -> 14
=MINUTE("14:37:20")  ' -> 37
=SECOND("14:37:20")  ' -> 20

本物のタイムスタンプに対しても働きます —— HOUR(NOW()) は現在の「時」を返します —— なぜなら日付時刻は日数のシリアル値 + 時刻の小数であり、HOUR はその小数部分を 読むだけだからです。

ここが誰もが引っかかる罠で、「時計の文字盤」からまっすぐ導かれます。HOUR が読むのは 時刻であって、何かがどれだけ続いたかではありません。 二つの出来事が 30 時間離れて いるなら、その経過時間は 1.25(1 日と 4 分の 1)であり、

' D2 には 30 時間の経過時間(数値 1.25)が入っている
=HOUR(D2)     ' -> 6    30 ではない  (30 時間 = 1 日 + 6 時間。HOUR は 6 を見る)

HOUR は日数の部分を捨て、時計の読みを報告します。30 が欲しいなら必要なのは 経過時間で、それは算術 —— D2 * 24 —— であって HOUR ではありません。それこそが 時刻を小数の時間に変換することが、時計を読むのとは 別の仕事である理由です。

TIME は小数を組み立て —— 深夜 0 時で折り返す

TIME(hour, minute, second) はその逆をします。三つの数値を取り、1 日の小数を 組み立てます。

=TIME(8, 30, 0)     ' -> 0.354167   (時刻書式にすると 8:30 AM)
=TIME(14, 30, 0)    ' -> 0.604167   (-> 2:30 PM)

覚えておく価値があるのは、パーツがあふれたときの挙動です。TIME はエラーにせず 繰り上がります —— 59 を超えた分は時に繰り上がり、23 を超えた時は時計を一周 折り返します(実質的に結果を 24 時間で剰余にとります)。

=TIME(8, 90, 0)     ' -> 0.395833   (8 時間 + 90 分 -> 9:30 AM)
=TIME(25, 0, 0)     ' -> 0.041667   (25:00 は折り返して 1:00 AM)

この繰り上がりは、「開始時刻に 90 分足したい」ときには便利な機能ですが、 TIME(25,0,0) に 25 時間の経過時間を期待したときにはです。それはできません。 TIME が生み出すのは常に 01 のあいだの値、つまり時計上の一点であって、 1 日以上の経過時間には決してなりません。24 時間を超えうる経過時間は算術で組み立て、 [h]:mm 書式で表示しましょう —— 24 時間を超える時間の合計を 参照してください。

TIMEVALUE はテキストとして固まった時刻を救い出す

エクスポートから時刻がテキストとして届くと —— セル内で左揃えになり、引き算も 並べ替えもできません —— 裏に小数がないので、HOUR も算術も両方失敗します。 TIMEVALUE は文字列を小数に解析します。

' A2 にはテキスト "2:30 PM" が入っている
=A2 * 24            ' -> #VALUE!    (文字列は掛け算できない)
=TIMEVALUE(A2)      ' -> 0.604167   (これで本物の小数。*24 で 14.5 になる)
=HOUR(TIMEVALUE(A2))' -> 14

これは DATEVALUE の時刻版の双子です。元の文字列が日付と時刻の両方を持っているなら、 二つのパーサーを足します。DATEVALUE(LEFT(...)) + TIMEVALUE(MID(...)) で完全な タイムスタンプを組み立て直せます。結合解析のパターンは DATEVALUE と TIMEVALUEを参照してください。

判断のしどころ

  • 「時計は何時?」 —— ピボット用の「時」、ラベル用の「分」→ HOUR / MINUTE / SECOND。グループ化や比較ができるきれいな整数をくれます。
  • 「どれだけかかった?」 —— 経過時間、とりわけ 24 時間を超えるもの → HOUR使わない。引き算して 24 を掛けて小数の時間にするか、[h]:mm で表示します。
  • パーツから時刻を組み立てるTIME(h, m, s)。深夜 0 時で折り返すことを忘れずに。 折り返しは意図して使い(分を足す)、長い経過時間の表現には決して使わないこと。
  • 15 分単位に丸める → 小数に対して MROUND で処理します: =MROUND(A2, TIME(0,15,0))MINUTE でパーツを読んで縫い直すのは遠回りです。
  • 計算を受けつけない時刻 → それはテキストです。あらゆる数式に振りまくのではなく、 インポートの境界で一度だけ TIMEVALUE で包みましょう。

ExcelMaster はどう役立つか

時刻の数式は静かに失敗します。数値は正しいのに書式だけが間違っていたり、経過時間が こっそり日数を失ったりします。ExcelMaster はリクエストの裏にある意図を読み取り —— 「時を取り出す」「開始時刻を組み立てる」「これらの時刻はテキストで届いた」—— ぴったりの数式を書きます。人が忘れがちな部分もこみで —— テキスト時刻を TIMEVALUE で 包む、経過時間には TIME か算術かを選ぶ、そして見える結果が裏の数値と一致するよう 正しい表示形式を適用する。あなたは時計を語り、ツールが小数を扱います。

よくある質問

なぜ 30 時間の経過時間で HOUR が 6 を返すのですか?

HOUR が読むのは時計の文字盤であって、経過時間ではないからです。30 時間は まる 1 日と 6 時間(数値 1.25)で、HOUR はまる 1 日を捨てて 6 を報告します。 経過時間の時間数が欲しいなら算術を使いましょう —— =経過時間 * 2430 をくれます。

Excel で時刻に 90 分を足すには?

TIME 値を足します: =A2 + TIME(0, 90, 0)TIME が 90 分を 1:30 に繰り上げるので、 8:00 AM の開始は 9:30 AM になります。1 分は 1 日の 1/1440 なので、90/1440 を足しても 同じです。

"2:30 PM" のようなテキスト文字列から時刻を取り出すには?

TIMEVALUE で包みます: =TIMEVALUE("2:30 PM") は本物の 1 日の端数 0.6042 を返します。 その後、HOUR/MINUTE でパーツを読んだり、24 を掛けて小数の時間にしたりできます。

TIME と TIMEVALUE の違いは何ですか?

TIME(h, m, s) は三つの数値から時刻を組み立てます。TIMEVALUE("...")テキスト文字列を同じ種類の小数に解析します。パーツが数値で手元にあるときは TIME を、 時刻がテキストで届いたときは TIMEVALUE を使いましょう。

時刻を 15 分単位に丸めるには?

裏の小数を丸めます: =MROUND(A2, TIME(0,15,0))TIME(0,15,0) は 1 日の小数として 15 分なので、MROUND は時計を分解しなくても値を最も近い 15 分(4 分の 1 時間)に そろえます。

検証環境

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

関連ガイド: 時刻を小数(10 進の時間)に変換する · 24 時間を超える時間の合計 · Excel DATEVALUE と TIMEVALUE · Excel INT・TRUNC・MOD · Excel ROUND