Excelで「261」など秒だけの数値を、4:21のような分:秒や12:04:21 AMのような時:分:秒に変換したいときは、秒を“日”の単位に換算してから表示形式を整えるのが近道です。計算に使える数値のまま、見た目だけを時刻表示にできます。
なぜ「÷86400」が必要なのか:Excelの時刻のしくみ
Excelの時刻は、見た目こそ「12:34:56」のように表示されますが、内部的には日付・時刻を連続した数値(シリアル値)として管理しています。
ポイントはとてもシンプルで、1日=1として扱われます。つまり、1時間・1分・1秒は「1日の何分のいくつか」という小数になります。
| 単位 | Excel内部の値(1日=1) | 秒からの換算イメージ |
|---|---|---|
| 1日 | 1 | 秒 ÷ 86400 |
| 1時間 | 1/24 | 秒 ÷ 3600(時間)→ さらに ÷24 |
| 1分 | 1/1440 | 秒 ÷ 60(分)→ さらに ÷1440 |
| 1秒 | 1/86400 | 秒 ÷ (24×60×60) |
たとえば261秒は、1日に対して261/86400日です。ここまで変換できれば、あとはセルの表示形式を「分:秒」「時:分:秒」「AM/PM付き」などに切り替えるだけで、狙った“時刻っぽい見た目”になります。
よくある失敗:秒数のまま表示形式だけ変えるとズレる
秒数が261のセルに対して、何も考えずに表示形式を「mm:ss」にしても、Excelは261を“261日”として解釈します。日付成分が混ざったり、意図しない時刻になったりして「思ってたのと違う」表示になりがちです。
まずは秒 → 日へ換算(÷86400)してから表示形式を当てる、という順番を守るのがコツです。
方法A(おすすめ):数値として時刻化して、表示形式で見せる
この方法は、変換後のセルが本当の時刻(数値)として扱われるため、合計・平均・差分などの計算にも強いのがメリットです。実務では基本的にこちらが安定します。
手順
- 秒数が入っているセルをA2とします(例:A2に261)。
- 別セル(例:B2)に次を入力します。
=A2/86400 - B2を選択し、セルの書式設定を開きます。
WindowsならCtrl+1、MacならCmd+1が早いです。 - 「表示形式」→「ユーザー定義」で、目的の形式を設定します。
目的別:おすすめの表示形式(ユーザー定義)
| 目的 | 表示形式(例) | 261秒の表示例 | 使いどころ |
|---|---|---|---|
| 分:秒(先頭ゼロなし) | m:ss | 4:21 | タイム計測や作業ログで“自然な見た目”にしたい |
| 分:秒(2桁固定) | mm:ss | 04:21 | 動画の尺や音声の再生時間など、桁を揃えたい |
| 時:分:秒(先頭ゼロなし) | h:mm:ss | 0:04:21 | 1時間未満でも「0:」を出し、見落としを防ぎたい |
| 時:分:秒(2桁固定) | hh:mm:ss | 00:04:21 | レポートや一覧で桁を揃えたい |
| AM/PM付きの時刻 | hh:mm:ss AM/PM | 12:04:21 AM | 時刻表記として見せたい(0時台は12:xx AM) |
日本語環境のExcelでは、AM/PMが「午前/午後」として表示されることもあります。表示が期待と違う場合は、表示形式の種類を変えるか、後述のTEXT関数で文字列として固定する方法が確実です。
大事な分かれ道:「時刻」か「経過時間」か
「秒数」を変換したい場面の多くは、実は“時計の時刻”ではなく“経過時間(所要時間)”です。ここを取り違えると、60分や24時間を超えたときに表示が破綻します。
- 時計の時刻:1日(24時間)でぐるっと一周してリセットされる(例:25時間 → 1時間として見える)
- 経過時間:合計時間として積み上げたい(例:25時間 → 25時間のまま見せたい)
経過時間として扱うなら、表示形式は[ ]付きの指定を覚えておくと失敗が減ります。
60分を超える可能性があるなら「[m]:ss」を使う
「mm:ss」は一見便利ですが、Excelの仕様上、分は60でリセットされます。つまり、3600秒(60分)を超えると、分だけを見たときに“合計分”になりません。
| 秒数 | 変換式 | mm:ss の表示 | [m]:ss の表示 | どちらが正解? |
|---|---|---|---|---|
| 261 | =A2/86400 | 04:21 | 4:21 | どちらでもOK(1時間未満) |
| 3723(=1時間2分3秒) | =A2/86400 | 02:03 | 62:03 | 合計分で見たいなら [m]:ss |
| 7250(=2時間0分50秒) | =A2/86400 | 00:50 | 120:50 | 「分:秒」で集計する業務は [m]:ss が安全 |
スポーツのラップタイムやコールセンターの応対時間など、“分が増え続ける”前提のデータでは、最初から[m]:ssを採用しておくと後で困りません。
24時間を超える可能性があるなら「[h]:mm:ss」を使う
1日を超える(86400秒超)データでは、hh:mm:ssだと24時間でリセットされます。経過時間として正しく見せたいなら[h]を使います。
| 秒数 | イメージ | hh:mm:ss の表示 | [h]:mm:ss の表示 |
|---|---|---|---|
| 90061 | 25時間1分1秒 | 01:01:01 | 25:01:01 |
| 172800 | 48時間 | 00:00:00 | 48:00:00 |
「稼働時間」「サーバーの連続稼働」「バッチ処理の所要時間」など、日をまたぐ集計では[h]:mm:ssが定番です。
AM/PM付きの「時刻っぽい表示」を作るコツ
秒数を時刻として見せたい(例:261秒 → 12:04:21 AM)の場合も、基本は同じで秒÷86400してから表示形式を変えます。
表示形式は次のように設定します。
hh:mm:ss AM/PM
ここで表示される「AM/PM」は、0:00〜11:59がAM(午前)、12:00〜23:59がPM(午後)という時計のルールに従います。261秒は0時4分21秒なので、12:04:21 AM(午前12時4分21秒)になります。
なお、経過時間(所要時間)をAM/PMで表示するのは混乱のもとです。所要時間なら、AM/PMではなく[h]:mm:ssなどで合計時間として見せる方が読み手に優しいです。
方法B:TEXT関数で“文字列として”時刻形式を出力する
見た目の整った文字列を作りたい、他システムに貼り付けたい、帳票の見出しに埋め込みたい……という用途では、TEXT関数が便利です。
基本形
=TEXT(A2/86400,"m:ss")
AM/PM付きの例
=TEXT(A2/86400,"hh:mm:ss AM/PM")
TEXT関数の注意点は、結果が文字列になることです。合計や平均との差分などの計算を続ける可能性があるなら、方法A(数値として時刻化)を基本にし、最後の見せ方だけTEXTにするのが失敗しません。
| 観点 | 方法A:÷86400+表示形式 | 方法B:TEXT関数 |
|---|---|---|
| 計算(SUM/AVERAGE) | 強い(時刻の数値のまま) | 弱い(文字列なので計算に使いにくい) |
| 見た目の自由度 | 表示形式の範囲内 | 文字列として自由度高め |
| 貼り付け・出力 | 貼り付け先で見え方が変わる可能性 | 貼り付け先でも同じ見え方になりやすい |
| おすすめシーン | 集計・分析・ピボット・グラフ | 帳票・通知文・メール本文・システム連携 |
秒数データを扱う実務のコツ:計算用列と表示用列を分ける
現場では、秒数が入った元データ(A列)を残しつつ、B列に「時刻化した数値」、C列に「表示用の文字列」を置くと運用が安定します。
| 列 | 役割 | 例 | メリット |
|---|---|---|---|
| A列 | 元の秒数 | 261 | 再計算・別形式への変換が簡単 |
| B列 | 時刻化(数値) | =A2/86400 | 集計・平均との差分に強い |
| C列 | 表示用(文字列) | =TEXT(B2,"[m]:ss") | 貼り付け先で表示が崩れにくい |
この構成にしておくと、「まずは分析したい」「最後に帳票として整形したい」という流れでも破綻しません。
よくあるトラブルと解決チェックリスト
| 症状 | よくある原因 | 解決策 |
|---|---|---|
| 4:21にならず、変な時刻/日付になる | 秒数のまま表示形式だけ変えた | =A2/86400で日へ換算してから表示形式を設定 |
| 1時間を超えると分がリセットされる | 表示形式がmm:ss | 合計分にしたいなら[m]:ssへ変更 |
| 24時間を超えると時間がリセットされる | hh:mm:ssで表示している | 合計時間にしたいなら[h]:mm:ssへ変更 |
| ##### と表示される | 列幅が狭い/負の時刻になっている | 列幅を広げる。差分計算でマイナスが出るなら、符号付き表示の工夫をする |
| AM/PMが出ない・午前/午後にならない | ロケールや表示形式の指定が合っていない | 表示形式をhh:mm:ss AM/PMにする。うまくいかない場合はTEXT関数で固定 |
| TEXTで作った結果を合計できない | 文字列なので計算対象にならない | 計算は方法Aの列(数値)で行い、最後にTEXTで見せる |
| 秒数が計算できない | インポート時に文字列として入っている | =VALUE(A2)や=A2*1で数値化してから変換 |
応用:1セルで「時:分:秒(経過時間)」を作りたいとき
「表示形式の設定が面倒」「貼り付け先で確実に見た目を固定したい」という場合は、TEXTで一気に作るのもありです。
たとえば、合計時間として“何時間でも増える”形式にしたいなら、次のようにします。
=TEXT(A2/86400,"[h]:mm:ss")
これで、90061秒は「25:01:01」のように、24時間を超えても崩れずに表示できます。
逆変換も覚えておくと便利:時刻 → 秒
「時刻表示になったセルから秒数に戻したい」こともよくあります。その場合は、Excelの内部値が“日”なので、逆に×86400すれば秒に戻せます。
=B2*86400
時刻化した列を作っておくと、表示の変更や他形式への変換をやり直すときもスムーズです。
まとめ:迷ったら「÷86400 → 表示形式」で解決できる
- Excelの時刻は1日=1の小数で管理される
- 秒数はまず÷86400で日へ換算してから表示形式を設定する
- 1時間超なら[m]:ss、24時間超なら[h]:mm:ssが安全
- TEXT関数は便利だが、結果は文字列なので計算用と表示用を分けると安定

コメント