Excel で「0.5」を「12:00」のような時刻にしたい — 表示形式を h:mm に変えるか、TEXT 関数で文字列化するかの 2 つで解決します。
Excel が時刻を内部的に「小数 (シリアル値)」として扱う仕組みと、24 時間を超える小数や TIMEVALUE 関数の誤用といった罠も整理します。
シリアル値とは ― なぜ 0.5 が 12:00 になるのか
Excel は時刻を「1 日を 1 とする小数」で内部的に保持しています。これをシリアル値と呼びます。
![Excel の A 列に 0.0 から 1.0 を 0.1 刻みで入力し、B 列に [h]:mm 形式を適用したシリアル値の対応表。0.0 が 0:00、0.5 が 12:00、1.0 が 24:00 になることが確認できる](https://www.helpaso.net/wp-content/uploads/2026/05/decimal-to-time-serial-number.webp)
シリアル値と時刻の対応は、次の表のようになります。
| シリアル値 | 時刻表示 | 意味 |
|---|---|---|
| 0.0 | 0:00 | 午前 0 時 (1 日の始まり) |
| 0.25 | 6:00 | 朝 6 時 (1 日の 1/4) |
| 0.5 | 12:00 | 正午 (1 日の半分) |
| 0.75 | 18:00 | 午後 6 時 (1 日の 3/4) |
| 1.0 | 24:00 | 翌日の 0 時 (1 日分) |
0.5 が 12:00 になるのは、「1 日 = 1」の真ん中に 12 時間があるからです。この仕組みを覚えておくと、後の操作が直感的に理解できます。
方法 1: 表示形式を h:mm に変える (最も簡単)
もっとも簡単な変換方法です。元の値 (0.5) はそのままで、見え方だけ「12:00」に変わります。
操作手順
- 対象のセルを選択する
- Ctrl + 1 を押して「セルの書式設定」ダイアログを開く
- 左のリストからユーザー定義を選ぶ
- 「種類」欄に
h:mmと入力 - OK ボタンを押す

適用前と適用後で値はまったく同じですが、見え方だけが変わります。

表示形式の特徴
- 値は 0.5 のまま。数式バーで確認すると 0.5 と表示される
- 計算式の結果としても 0.5 として扱われる (
=ISNUMBER(A1)は TRUE) - 合計や平均などの計算をそのまま続けられる
他の時刻表示形式 (h:mm:ss、時刻 AM/PM など) を試したい場合は、時刻のユーザー定義表示形式サンプル (コピペ利用可能) でまとめて確認できます。
方法 2: TEXT 関数で文字列に変換する
別のセルへ「12:00」という文字を表示したいときは、TEXT 関数を使います。
=TEXT(A1,"h:mm")

TEXT 関数の結果は文字列
TEXT 関数の結果は文字列です (セル内で左寄せ、ISTEXT で TRUE)。ただし、+1 や *2 のような算術演算では、Excel が文字列を数値として自動変換することがあります。計算できる場合もありますが、型としては文字列なので、検索・照合・並べ替えでは数値セルと同じ扱いにならないことがあります。
- 算術演算 (+/-/×/÷) は通る場合が多い (Excel が文字列→数値の自動変換を試みる)
- 並べ替えは字句順になる (例: 「12:00」と「8:00」を並べると「12:00」が先になる)
- VLOOKUP の完全一致では、数値の 0.5 と文字列の「12:00」は別キー扱いになる
TEXT 関数の用途
- 別のセルへ時刻表示として表示する
- 文字列を連結する (例:
="開始時刻は "&TEXT(A1,"h:mm")) - レポートや差し込み印刷で時刻文字列が必要な場合
「午前/午後」付きの形式で出力したい場合は、Excelで時刻を「午前/午後」形式で別セルへ文字列として出力する計算式 も参考になります。
TIMEVALUE 関数は使えない ― よくある誤解
「TIMEVALUE 関数で小数を時刻にできるのでは?」と試される方が多いですが、TIMEVALUE は逆方向の関数です。

TIMEVALUE は文字列を小数 (シリアル値) に戻す関数で、本記事で扱う「小数 → 時刻」とは反対方向の処理です。
| 入力 | 結果 | 説明 |
|---|---|---|
=TIMEVALUE("12:00") | 0.5 | 文字列を小数に変換 (本来の用途) |
=TIMEVALUE(0.5) | #VALUE! | 引数が数値だとエラー |
=TIMEVALUE("12:00") | 0.5 | 全角の時刻文字列も受理 |
=TIMEVALUE("36:00") | 0.5 | 24 時間で正規化される (36:00 = 12:00 扱い) |
逆方向 (時刻 → 小数) の変換が必要な場合は、かんたん!Excelで時刻値を小数の「時間」へ変換する方法 や 時刻データが小数値データとして表示されてしまうので直したい を参照してください。
1 を超える小数を扱うとき ― [h]:mm の必要性
シリアル値が 1.0 以上になると、h:mm 形式では 1 日分が見えなくなるという落とし穴があります。
![Excel で 1.0、1.5、2.0、2.5 を h:mm と [h]:mm の両方で表示した比較表。h:mm は 0:00、12:00、0:00、12:00 と巻き戻り、[h]:mm は 24:00、36:00、48:00、60:00 と累計表示](https://www.helpaso.net/wp-content/uploads/2026/05/decimal-to-time-over-24h.webp)
| シリアル値 | h:mm の表示 | [h]:mm の表示 |
|---|---|---|
| 1.0 | 0:00 (1 日分が消える) | 24:00 |
| 1.5 | 12:00 | 36:00 |
| 2.0 | 0:00 | 48:00 |
| 2.5 | 12:00 | 60:00 |
罠は1.0 ちょうどから発生します。1.0 は「24 時間 (= 1 日分)」を意味するので、h:mm 形式では 0:00 に巻き戻って見えるのです。
これを避けるには、角括弧付きの [h]:mm を使います。[h] と書くことで「24 時間で巻き戻さず、累計時間として表示する」という指定になります。
TEXT 関数で同じ動作にする場合は、書式コードを [h]:mm にします。
=TEXT(A1,"[h]:mm")
24 時間を超える時刻表示の詳細は、24時間を超える時刻値を正しく表示するユーザー定義表示形式のExcel設定 で個別に解説しています。
それでもうまく動かないときのチェックリスト
ケース 1: # / ## / ### が表示される — 列幅不足
表示形式を変えたあとに # や ## が並んでいたら、列幅が足りていません。列の境界をダブルクリックして自動調整するか、列を広げてください。h:mm なら 5 文字分以上の幅があれば「12:00」が出ます。
ケース 2: 結果が「########」になる — 負の小数
セルの値が -0.5 のように負の数だと、時刻表示形式は ######## になります。h:mm、[h]:mm、h:mm:ss のどれでも同じ結果です。
これは Excel の仕様で、時刻表示形式は負の値を扱えないためです (=TEXT(-0.5,"h:mm") も #VALUE! になります)。
対処法は、絶対値にしてから時刻として扱うことです。
=ABS(A1)
ケース 3: 内部値が微妙にずれる — 浮動小数点誤差
表示は丸まるので、普通に時刻として見ている分には問題ありません。ただし、秒単位の整数比較 (=A1*86400=60480 のような式) では誤差が顕在化するケースもあります。
気になる場合は、秒単位で丸め直してから扱うと安全です。
=ROUND(A1*86400,0)/86400
ケース 4: 時刻ではなく「分単位の数値」が欲しい
「0.5 を 720 (分)」のように、時刻シリアル値 (1 日 = 1) を分・時間・秒の数値として扱いたい場合は、表示形式や TEXT 関数ではなく、単純な掛け算で計算します。
- 分単位 (例: 0.5 → 720):
=A1*1440 - 時間単位 (例: 0.5 → 12):
=A1*24 - 秒単位 (例: 0.5 → 43200):
=A1*86400
分単位での計算式の使い方は、Excelの時刻データを「分」単位で表示する計算式 でくわしく解説しています。
まとめ: 用途で 2 解法を使い分ける
Excel で小数を時刻に変換する 2 つの方法は、用途に応じて使い分けるのが基本です。
| 使いたい場面 | おすすめの方法 | 数式 |
|---|---|---|
| セル内で時刻として見せたい | 表示形式 (方法 1) | — (Ctrl+1 で h:mm) |
| 別セルや文字列連結で使いたい | TEXT 関数 (方法 2) | =TEXT(A1,"h:mm") |
| 24 時間以上を累計表示したい | 表示形式 or TEXT | [h]:mm を使う |
| 分や秒の数値が欲しい | 掛け算 | =A1*1440 など |
シリアル値の仕組み (1 日 = 1) を理解しておくと、=A1*24 や [h]:mm といった応用も自然に使えるようになります。
サンプルブック (xlsx) のダウンロード
サンプルファイル(xlsx)
本記事で紹介した「シリアル値の対応表」「表示形式 (h:mm / [h]:mm / h:mm:ss) の比較」「TEXT 関数の比較」「罠と対処法 5 ケース」を 4 シートにまとめたサンプルブックです。書式コードと数式が動く状態でそのまま試せます。

コメント