doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

Excelで秒数を時:分:秒に変換|コピペで使えるTEXT関数と表示形式の使い分け

スポンサーリンク

ストップウォッチのログや動画の再生時間、システムから出力したデータなどで、「秒数」だけが並んだ表を扱うことはよくあります。たとえば「3661」という数字を見せられても、それが「1時間1分1秒」だとはパッと分かりませんよね。

しかも厄介なのは、そのまま集計しようとしても時刻表示にできずに詰まること。「割り算は合っているはずなのに、なぜか変な小数が出る」と手が止まった経験がある方も多いはずです。

この記事では、Excelで秒数を「時:分:秒」に変換する方法を、表示形式(書式設定)TEXT関数の2通りで、コピペしてすぐ使える形にまとめます。

Excelで秒数を時:分:秒に変換|コピペで使えるTEXT関数と表示形式の使い分けのサンプル ▲ Excel サンプル

急いでいる人へ:この式だけ覚えればOK

文字列として時:分:秒がほしいなら、次の1行で解決します。

=TEXT(A1/86400, "[h]:mm:ss")

A1に秒数が入っていれば、36611: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)が入っているとします。

  1. B1セルに次の式を入力します。
   =A1/86400
  1. B1セルを選び、Ctrl + 1で「セルの書式設定」を開きます。
  2. 「表示形式」タブ →「ユーザー定義」を選びます。
  3. 「種類」の欄に、下の文字列をそのまま貼り付けて「OK」。
   [h]:mm:ss

これで 36611:01:01 と表示されます。種類欄に入れるのはこの[h]:mm:ssだけ。迷ったらコピペで大丈夫です。

[h] の角カッコがポイント

ここで一番大事なのが、h[h]角カッコで囲むことです。

  • h:mm:ss … 24時間を超えると0に戻る(25時間→1:00:00
  • [h]:mm:ss24時間を超えても累計で表示(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:051: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つです。

  1. 秒数を86400で割る(1日=86400秒)
  2. [h]:mm:ssの表示形式を当てる(角カッコで24時間超えに対応)

計算を続けたいなら表示形式、文章に埋め込みたいなら=TEXT(A1/86400,"[h]:mm:ss")、と使い分ければ完璧です。すでに時刻形式のセルは割らない、これさえ押さえれば取りこぼしもありません。秒数だらけのデータも、ひと手間で一気に読みやすくなりますよ。


関連記事

あわせてチェック