Article

Excel 小数を時刻に変換する方法|表示形式・TEXT 関数の使い分け

この記事で分かること

Excel で 0.5 を 12:00 のような時刻表示にする 2 つの方法 (表示形式・TEXT) と、シリアル値の仕組み・24 時間超・TIMEVALUE 誤用の罠を整理します。

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 になることが確認できる

シリアル値と時刻の対応は、次の表のようになります。

シリアル値時刻表示意味
0.00:00午前 0 時 (1 日の始まり)
0.256:00朝 6 時 (1 日の 1/4)
0.512:00正午 (1 日の半分)
0.7518:00午後 6 時 (1 日の 3/4)
1.024:00翌日の 0 時 (1 日分)

0.5 が 12:00 になるのは、「1 日 = 1」の真ん中に 12 時間があるからです。この仕組みを覚えておくと、後の操作が直感的に理解できます。

方法 1: 表示形式を h:mm に変える (最も簡単)

もっとも簡単な変換方法です。元の値 (0.5) はそのままで、見え方だけ「12:00」に変わります。

操作手順

  1. 対象のセルを選択する
  2. Ctrl + 1 を押して「セルの書式設定」ダイアログを開く
  3. 左のリストからユーザー定義を選ぶ
  4. 「種類」欄に h:mm と入力
  5. OK ボタンを押す
Excel のセルの書式設定ダイアログでユーザー定義タブが開かれ、種類欄に h:mm が入力されている画面。サンプル欄に 12:00 が表示されている

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

Excel で同じ値 0.5、0.25、0.75 を A 列 (標準書式) と B 列 (h:mm 表示形式) に並べた比較表。A 列は 0.5 のまま、B 列は 12:00 に変わって見える

表示形式の特徴

  • 値は 0.5 のまま。数式バーで確認すると 0.5 と表示される
  • 計算式の結果としても 0.5 として扱われる (=ISNUMBER(A1) は TRUE)
  • 合計や平均などの計算をそのまま続けられる

他の時刻表示形式 (h:mm:ss、時刻 AM/PM など) を試したい場合は、時刻のユーザー定義表示形式サンプル (コピペ利用可能) でまとめて確認できます。

方法 2: TEXT 関数で文字列に変換する

別のセルへ「12:00」という文字を表示したいときは、TEXT 関数を使います。

=TEXT(A1,"h:mm")
Excel の数式バーに =TEXT(A2,"h:mm") が表示され、B 列に 12:00 (左寄せ=文字列) と表示されている TEXT 関数の使用例

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 は逆方向の関数です。

Excel で =TIMEVALUE(0.5) を実行すると #VALUE! エラーになる画面。文字列の "12:00" や "36:00" は受理されて 0.5 になることも示している

TIMEVALUE は文字列を小数 (シリアル値) に戻す関数で、本記事で扱う「小数 → 時刻」とは反対方向の処理です。

入力結果説明
=TIMEVALUE("12:00")0.5文字列を小数に変換 (本来の用途)
=TIMEVALUE(0.5)#VALUE!引数が数値だとエラー
=TIMEVALUE("12:00")0.5全角の時刻文字列も受理
=TIMEVALUE("36:00")0.524 時間で正規化される (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 と累計表示
シリアル値h:mm の表示[h]:mm の表示
1.00:00 (1 日分が消える)24:00
1.512:0036:00
2.00:0048:00
2.512:0060: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]:mmh: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 シートにまとめたサンプルブックです。書式コードと数式が動く状態でそのまま試せます。

xlsx 形式 ・ 約 9 KB ・ シート 4 枚 ・ Excel 2024 build 19929 で動作確認。

helpaso-decimal-to-time-2026.xlsx

Next Read

このあと読む記事

今の内容に近い記事から、次の1本と補助記事を続けて見つけられるようにしています。

Keep Exploring

このテーマをさらに探す

同じテーマの入口記事と更新記事を、一覧の形でまとめています。

コメント