ストップウォッチのログや動画の再生時間、システムから出力したデータなどで、「秒数」だけが並んだ表を扱うことはよくあります。たとえば「3661」という数字を見せられても、それが「1時間1分1秒」だとはパッと分かりませんよね。
しかも厄介なのは、そのまま集計しようとしても時刻表示にできずに詰まること。「割り算は合っているはずなのに、なぜか変な小数が出る」と手が止まった経験がある方も多いはずです。
この記事では、Excelで秒数を「時:分:秒」に変換する方法を、表示形式(書式設定)とTEXT関数の2通りで、コピペしてすぐ使える形にまとめます。
- 急いでいる人へ:この式だけ覚えればOK
- まず知っておきたい:Excelの「時間」の正体
- 方法1:表示形式(ユーザー定義書式)で変換する
- 方法2:TEXT関数で文字列に変換する
- 注意:すでに「時刻形式」で入っている場合は割らない
- 表示形式とTEXT関数、どちらを使う?
- よくあるトラブルと対処法
- まとめ
- 関連記事
- あわせてチェック
▲ Excel サンプル
急いでいる人へ:この式だけ覚えればOK
文字列として時:分:秒がほしいなら、次の1行で解決します。
=TEXT(A1/86400, "[h]:mm:ss")
A1に秒数が入っていれば、3661 → 1:01:01 と表示されます。理屈は後述しますが、まずはこれをコピペして試してみてください。
まず知っておきたい:Excelの「時間」の正体
Excelでは、時刻を「1日=1」とするシリアル値で管理しています。
- 1日 = 24時間 =
1 - 1時間 =
1/24 - 1分 =
1/1440 - 1秒 =
1/86400
1日は 24×60×60=86400秒。だから秒数を86400で割ると、Excelが理解できる「時間の値」になります。あとは表示を整えるだけ。とてもシンプルです。
方法1:表示形式(ユーザー定義書式)で変換する
セルの中身は計算に使える数値のまま、見た目だけを「時:分:秒」にしたい場合は、表示形式がおすすめです。
手順
A1セルに秒数(例:3661)が入っているとします。
- B1セルに次の式を入力します。
=A1/86400
- B1セルを選び、
Ctrl + 1で「セルの書式設定」を開きます。 - 「表示形式」タブ →「ユーザー定義」を選びます。
- 「種類」の欄に、下の文字列をそのまま貼り付けて「OK」。
[h]:mm:ss
これで 3661 が 1:01:01 と表示されます。種類欄に入れるのはこの[h]:mm:ssだけ。迷ったらコピペで大丈夫です。
[h] の角カッコがポイント
ここで一番大事なのが、h を [h] と角カッコで囲むことです。
h:mm:ss… 24時間を超えると0に戻る(25時間→1:00:00)[h]:mm:ss… 24時間を超えても累計で表示(25時間→25:00:00)
合計再生時間や合計作業時間など、24時間を超えうるデータでは必ず[h]を使いましょう。同じ理屈で、分だけ累計したいなら[m]:ss(90分→90:00)、秒だけなら[s]が使えます。シリアル値で1分が1/1440なのと対応していて、「どの単位を頭出しするか」を角カッコで指定しているイメージです。
方法2:TEXT関数で文字列に変換する
数値ではなく文字列として取り出したいならTEXT関数が便利です。
基本の式
=TEXT(A1/86400, "[h]:mm:ss")
考え方は方法1と同じで、秒数/86400で時間の値にしてから、第2引数で表示形式を指定します。結果は文字列の1:01:01です。
文章の中に埋め込む
TEXT関数の真価は連結で発揮されます。
="所要時間は " & TEXT(A1/86400, "[h]時間mm分ss秒") & " です"
これで「所要時間は 1時間01分01秒 です」と、読みやすいレポート文を自動生成できます。
注意:すでに「時刻形式」で入っている場合は割らない
ここまでは「秒数の数値(3661など)」が前提でした。一方、最初から 0:00:05 や 1:01:01 のように時刻形式で入っているセルは、Excit内部ではすでにシリアル値です。これを86400で割ると桁が狂います。
- セルがただの数値(3661)→
/86400してから書式を当てる - セルがすでに時刻(1:01:01)→ 割らずに
[h]:mm:ssの書式を当てるだけ
見分けがつかないときは、セルを選んで右下のステータスバーの合計表示や、=ISNUMBER(A1)で中身を確認すると安心です。
表示形式とTEXT関数、どちらを使う?
| 比較項目 | 表示形式 | TEXT関数 |
|---|---|---|
| セルの中身 | 数値(計算に使える) | 文字列 |
| 合計・平均の計算 | ◯ そのままできる | × できない |
| 文字との連結 | △ 苦手 | ◯ 得意 |
| 用途 | 集計・分析向き | 表示・レポート向き |
迷ったら、まずは表示形式。中身が数値のままなので、後からSUMで合計しても並べ替えても問題ありません。文章に組み込みたい場面ではTEXT関数を選びましょう。
よくあるトラブルと対処法
結果が「###」になる
列の幅が足りないだけです。列の境界をダブルクリックして自動調整しましょう。
「0.04」のような小数になる
/86400はしたものの、表示形式を時刻にし忘れているケースです。実際3661/86400≒0.0424なので、計算は正しく行われています。Ctrl + 1から[h]:mm:ssを当て直せば直ります。
24時間を超えると数字が合わない
前述のとおり、hを[h]に変えれば解決します。秒数変換でいちばん多いつまずきポイントです。
まとめ
Excelで秒数を「時:分:秒」に変換するコツは、たった2つです。
- 秒数を86400で割る(1日=86400秒)
[h]:mm:ssの表示形式を当てる(角カッコで24時間超えに対応)
計算を続けたいなら表示形式、文章に埋め込みたいなら=TEXT(A1/86400,"[h]:mm:ss")、と使い分ければ完璧です。すでに時刻形式のセルは割らない、これさえ押さえれば取りこぼしもありません。秒数だらけのデータも、ひと手間で一気に読みやすくなりますよ。
関連記事
- Excelで時間を分に変換する方法|×1440・HOUR・MINUTEの使い分け
- 専用ソフト不要 ― Excelだけで「済」「確認」の朱色スタンプを作ってワンクリックで押す方法
- Excelで○×を集計する方法|COUNTIF・IFで数える&点数化【コピペ式付き】
- Excelでチェックマーク(レ点)を入れる4つの方法|クリックで切り替えられるチェックボックスの作り方も解説
- Excel丸数字①〜㊿の入力方法3選|㉑以降が変換で出ない時の解決法も