要点 — Excel は時刻を 1 日(24 時間)を 1 とした小数として格納します。真夜中は
0、6:00 AM は0.25、正午は0.5、6:00 PM は0.75です。HOUR・MINUTE・SECONDはその小数から整数のパーツを読み取り、TIME(hour, minute, second)は パーツから小数を組み立てて、深夜 0 時をまたぐと折り返します(=TIME(25,0,0)→ 1:00 AM)。TIMEVALUEは"2:30 PM"のようなテキストの時刻を小数0.6042に 変えます。心に刻んでおくべきことは一つ —— これらの関数が読むのは時計の文字盤で あって、経過時間ではありません。30 時間の経過時間に対するHOURは30ではなく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 は時計の文字盤を読む
三つの読み取り役は、時刻値から対応するパーツを取り出し、常に決まった範囲の整数を
返します。HOUR は 0〜23、MINUTE と SECOND は 0〜59 です。
=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 が生み出すのは常に 0 と 1 のあいだの値、つまり時計上の一点であって、
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 を報告します。
経過時間の時間数が欲しいなら算術を使いましょう —— =経過時間 * 24 が 30 をくれます。
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
