Excel中級者

Excel時刻を秒・分に変換する5つのテクニック|TIMEVALUE・シリアル値×86400・VBA

しんたろ。

Excelで「1:30:00」という時刻データを秒数(5400秒)や分数(90分)の整数値に変換したいと思ったことはありませんか?勤怠管理の集計、製造現場での作業時間分析、タイムスタンプの比較など、実務では時刻をそのまま扱うより数値に変換した方が計算しやすい場面が多くあります。

本記事では、Excel 時間 秒 変換に使える5つのテクニックを、TIMEVALUE関数・HOUR/MINUTE/SECOND関数・シリアル値×86400の計算式・VBAまで体系的に解説します。計算式はそのままコピーして使える形式で掲載しています。

姉妹記事との使い分けについて

本記事は「時刻データ(h:mm:ss)→ 秒・分の数値」への変換を扱います。逆に「秒や分で表された数値 → Excelのシリアル値(時刻)」への変換については、以下の記事をご覧ください。

Excelで時間を分・秒に変換する方法|数式×1440と関数の使い分け【図解】
Excelで時間を分・秒に変換する方法|数式×1440と関数の使い分け【図解】
この記事でわかること
  • Excelのシリアル値と時刻データの関係(基礎)
  • TIMEVALUE関数で文字列時刻をシリアル値に変換する方法
  • HOUR・MINUTE・SECOND関数を組み合わせて秒変換する計算式
  • シリアル値×86400で最短の秒変換を行う方法
  • 24時間超の合計時間を正しく表示するユーザー定義書式
  • VBAマクロで時刻列を一括変換する実装例
  • 勤怠管理・製造現場での実務活用シナリオ
この記事の目次
  1. Excelの時刻データとシリアル値の基礎知識
  2. LINEでExcelを気軽に学べる
  3. テクニック1|TIMEVALUE関数で文字列時刻をシリアル値に変換する
  4. テクニック2|HOUR・MINUTE・SECOND関数の組み合わせで秒変換する
  5. テクニック3|シリアル値×86400で高速に秒変換する
  6. LINEでExcelを気軽に学べる
  7. テクニック4|表示形式「[h]:mm」で24時間超の合計を正しく表示する
  8. テクニック5|VBAのTimeValue関数で時刻変換を自動化する
  9. 実務での活用シナリオ
  10. VBAマクロの実行結果をデモで確認
  11. まとめ:用途別テクニック選択ガイド
  12. LINEでExcelを気軽に学べる
  13. よくある質問(FAQ)

Excelの時刻データとシリアル値の基礎知識

時刻変換の計算式を正しく使うには、Excelが内部でどのように時刻を管理しているかを理解することが重要です。

シリアル値とは何か(1日=1、1秒=1/86400)

Excelはすべての日付・時刻を「シリアル値」と呼ばれる小数で管理しています。基準は次のとおりです。

単位シリアル値計算式
1日(24時間)1.0
1時間0.041666…1 ÷ 24
1分0.000694…1 ÷ 1440
1秒0.000011574…1 ÷ 86400

つまり、12:00:00(正午)はシリアル値で0.51:30:000.0625として保持されています。この仕組みを理解すると、なぜ「×86400」で秒に変換できるのかが自然に分かります。

時刻表示形式(h:mm:ss)と数値の違い

Excelのセルで「1:30:00」と表示されていても、それは表示形式の問題であり、セルの実際の値はシリアル値(0.0625)です。「表示形式を変えること」と「数値を変換すること」は別の操作であることに注意してください。

  • 表示形式変更: 見た目だけ変わる。セルの値(シリアル値)はそのまま
  • 数値変換: 計算式で数値を変換し、別のセルに秒数・分数として出力する

本記事では後者、つまり計算で数値を変換する方法を解説します。

期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

テクニック1|TIMEVALUE関数で文字列時刻をシリアル値に変換する

ポイント: テキスト(文字列)として入力された時刻データをシリアル値に変換できます。CSVインポートデータやシステム出力データの処理に最適です。

構文と引数

=TIMEVALUE(時刻文字列)
引数説明
時刻文字列"1:20:30" のように引用符で囲んだ文字列、またはテキスト形式のセル参照

使用例:「1:20:30」をシリアル値・秒数に変換

セル内容数式結果
A11:20:30(文字列)
B1シリアル値に変換=TIMEVALUE(A1)0.055902…
C1秒数に変換=TIMEVALUE(A1)*864004830
D1分数に変換=TIMEVALUE(A1)*144080.5

注意点:数値として計算するには×86400が必要

TIMEVALUE関数の戻り値はシリアル値(0〜1の小数)です。このままでは秒数として使えないため、秒変換には×86400、分変換には×1440、時間変換には×24 を掛けます。

また、TIMEVALUE関数は数値型の時刻(セルの書式が「時刻」になっているもの)には使用できません。数値型の時刻には、後述のテクニック2または3を使います。

テクニック2|HOUR・MINUTE・SECOND関数の組み合わせで秒変換する

ポイント: 最も直感的で理解しやすい方法です。時・分・秒をそれぞれ取り出して整数変換するため、計算式の意味が一目でわかります。

各関数の役割と構文

関数構文取り出す値戻り値の範囲
HOUR=HOUR(シリアル値)時の部分0〜23
MINUTE=MINUTE(シリアル値)分の部分0〜59
SECOND=SECOND(シリアル値)秒の部分0〜59

計算式:秒数に変換する

=HOUR(A1)*3600 + MINUTE(A1)*60 + SECOND(A1)

仕組みの解説:

  • HOUR(A1)*3600:時を秒に換算(1時間=3600秒)
  • MINUTE(A1)*60:分を秒に換算(1分=60秒)
  • SECOND(A1):秒はそのまま加算

分数に変換する場合:

=HOUR(A1)*60 + MINUTE(A1) + SECOND(A1)/60

活用例:複数行の時刻を一括で秒変換する

勤怠管理表のB列(B2:B100)に出退勤の差分時刻が入力されている場合、C列に次の数式を入力して下方向にコピーすれば一括変換できます。

=HOUR(B2)*3600 + MINUTE(B2)*60 + SECOND(B2)

SUM(C2:C100) でその合計秒数を求め、さらに÷3600すれば合計労働時間(時間単位)を求めることもできます。

テクニック3|シリアル値×86400で高速に秒変換する

ポイント: 最もシンプルな計算式です。HOUR/MINUTE/SECOND関数を使わず、シリアル値に直接86400を掛けるだけで秒数が得られます。大量データの処理でも動作が軽快です。

計算式:時刻のみのセル(日付なし)の場合

セルに日付情報が含まれず、純粋に時刻だけが入力されている場合は次の式で変換できます。

=A1 * 86400

結果は小数になることがあります。整数の秒数のみ必要な場合は INT() で切り捨てます。

=INT(A1 * 86400)

計算式:日付込みセル(日時データ)の場合

2026/01/15 9:30:00 のように日付と時刻が一体になったセルから、時刻部分だけを秒に変換するには INT() で日付(整数部)を除去します。

=(A1 - INT(A1)) * 86400

分変換・時間変換への応用

同じ考え方で、分や時間への変換も可能です。

変換先計算式掛け数の理由
秒数=A1 * 864001日=86400秒
分数=A1 * 14401日=1440分
時間数=A1 * 241日=24時間
期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

テクニック4|表示形式「[h]:mm」で24時間超の合計を正しく表示する

ポイント: 時刻の合計が24時間を超えると、Excelは通常の時刻書式では正しく表示できません。この問題を解決する表示形式の設定方法を解説します。

なぜ24時間超で表示がずれるのか

Excelの標準時刻書式 h:mm は、24時間を超えると0時間に戻ってしまう仕様です。例えば、合計が25:30:00(シリアル値1.0625)の場合、h:mm書式では1:30(25時間ではなく1時間30分)と表示されます。

ユーザー定義書式の設定手順

  1. 合計値を表示するセルを選択
  2. Ctrl + 1 でセルの書式設定を開く
  3. 「表示形式」タブ →「ユーザー定義」を選択
  4. 種類の入力欄に次の書式を入力してOK
用途入力する書式
時間・分の表示[h]:mm
時間・分・秒の表示[h]:mm:ss

h[h] と角括弧で囲むことで、24時間を超えた値もそのまま表示されます。

SUM関数との組み合わせ実例

勤怠管理で1週間分の労働時間(B2:B8)を合計する場合:

=SUM(B2:B8)

この合計セルに [h]:mm 書式を設定すれば、43:30(43時間30分)のように正しく表示されます。

テクニック5|VBAのTimeValue関数で時刻変換を自動化する

ポイント: 大量のデータを繰り返し変換する業務や、毎月定期的に実行する処理はVBAマクロで自動化すると大幅に工数を削減できます。

VBAコードの基本構文

VBAでは TimeValue() 関数で文字列をシリアル値に変換し、*86400 で秒数に変換できます。

' 文字列 "1:30:00" を秒数(5400)に変換する基本例
Dim strTime As String
Dim dblSeconds As Double

strTime = "1:30:00"
dblSeconds = TimeValue(strTime) * 86400

MsgBox "秒数: " & dblSeconds  ' → 5400 と表示

実装例:シートの時刻列を一括で秒変換するマクロ

A列に時刻データ(A2から下方向)が入力されているシートで、B列に対応する秒数を出力するマクロです。

Sub ConvertTimeToSeconds()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim cellValue As Variant

    Set ws = ThisWorkbook.Sheets("Sheet1")  ' シート名を適宜変更

    ' データ最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' ヘッダー行のラベル設定
    ws.Cells(1, "B").Value = "秒数"

    ' A列の時刻をB列に秒単位で出力
    For i = 2 To lastRow
        cellValue = ws.Cells(i, "A").Value

        ' セルが空の場合はスキップ
        If cellValue = "" Then GoTo NextRow

        ' 数値型シリアル値の場合
        If IsNumeric(cellValue) And Not IsEmpty(cellValue) Then
            ws.Cells(i, "B").Value = CLng(cellValue * 86400)
        ' 文字列型時刻の場合
        ElseIf IsDate(cellValue) Then
            ws.Cells(i, "B").Value = CLng(TimeValue(CStr(cellValue)) * 86400)
        End If

NextRow:
    Next i

    MsgBox "変換完了しました。(" & lastRow - 1 & "件)"
End Sub

実行方法と注意事項

実行方法:

  1. Alt + F11 でVBAエディタを開く
  2. 「挿入」→「標準モジュール」でモジュールを追加
  3. 上記コードを貼り付けて保存
  4. Alt + F8 →「ConvertTimeToSeconds」を選択して実行

注意事項:

  • マクロを含むファイルは .xlsm(マクロ有効ブック)で保存が必要です
  • CLng() で結果を整数に丸めています。小数秒が必要な場合は CDbl() に変更してください
  • シート名「Sheet1」は実際のシート名に合わせて変更してください

実務での活用シナリオ

ここでは、時刻変換が実際の業務でどのように役立つかを具体的なケースで解説します。

勤怠管理:出退勤時刻から労働時間を秒単位で集計

課題: 出勤時刻(C列)・退勤時刻(D列)から実労働秒数を計算し、残業時間の管理や給与計算に活用したい。

設計例:

内容数式例
C列出勤時刻9:00:00
D列退勤時刻18:30:00
E列経過時刻(差分)=D2-C2
F列経過秒数=(D2-C2)*86400
G列経過分数=(D2-C2)*1440

E列に[h]:mm書式を設定すれば、残業で24時間を超える累計にも対応できます。F列・G列は給与システムへのデータ連携や、集計レポートへの数値入力に活用できます。

COUNTIFS関数で勤怠データを集計する方法も合わせて確認してみてください。

【Excel】COUNTIFS関数の使い方!複数条件でカウントする方法を徹底解説
【Excel】COUNTIFS関数の使い方!複数条件でカウントする方法を徹底解説

製造現場:作業時間の秒単位での工程分析

課題: 各工程の作業時間(mm:ss形式)を記録し、ボトルネック工程を特定するため秒単位で比較・集計したい。

設計例:

工程記録時刻秒数換算目標秒数差異(秒)
工程A0:02:15135120+15
工程B0:01:48108120-12
工程C0:03:05185150+35

秒数に変換することで、工程間の比較・平均値計算・統計分析(AVERAGE・STDEV関数)が数値として扱えるようになり、改善効果の定量評価が容易になります。

VBAマクロの実行結果をデモで確認

上記のVBAマクロがどのように動作するか、下のインタラクティブデモで確認できます。

‘ 時刻列を一括で秒数に変換するマクロ
Sub ConvertTimeToSeconds()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long
    Set ws = ThisWorkbook.Sheets(“Sheet1”)
    lastRow = ws.Cells(ws.Rows.Count, “B”).End(xlUp).Row
    For i = 2 To lastRow
        ws.Cells(i, “D”).Value = _
            ws.Cells(i, “C”) – ws.Cells(i, “B”)
    Next i
    MsgBox “変換完了しました。(“ & lastRow – 1 & “件)”
End Sub
下のデモで実行結果を確認できます
📊 勤怠管理.xlsx – Excel
ABCD
1 作業内容開始時刻終了時刻作業時間
2 データ入力9:0010:30 1:30
3 会議11:0012:15 1:15
4 資料作成13:0015:45 2:45
5 メール対応16:0017:00 1:00
準備完了 100%
✅ 4件の作業時間が自動計算されました!
☝ 実務では数百行の勤怠データもVBAマクロで一括処理できます

まとめ:用途別テクニック選択ガイド

本記事で紹介した5つのテクニックを、用途・状況に応じて選択するための比較表です。

テクニック最適な使用場面難易度備考
TIMEVALUE関数CSVや外部システムから取り込んだ文字列時刻の変換初級数値型時刻には使用不可
HOUR/MINUTE/SECOND関数計算式の意図を明確にしたい・教育目的初級最も直感的で分かりやすい
シリアル値×86400大量データの高速処理・シンプルな計算初級日付込みの場合は-INT(A1)が必要
[h]:mm書式24時間超の合計時間を正しく表示したい初級数値変換ではなく表示形式の変更
VBA TimeValue毎月定期的な一括処理・自動化中級.xlsmで保存が必要

関連記事

Excelで時間を分・秒に変換する方法|数式×1440と関数の使い分け【図解】
Excelで時間を分・秒に変換する方法|数式×1440と関数の使い分け【図解】
【2026年版】Excelでよく使う関数一覧|初心者が最初に覚えるべき関数を完全ガイド
【2026年版】Excelでよく使う関数一覧|初心者が最初に覚えるべき関数を完全ガイド
【Excel】IF関数の使い方|基本から複数条件・ネストまで初心者向けに解説
【Excel】IF関数の使い方|基本から複数条件・ネストまで初心者向けに解説
期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

よくある質問(FAQ)

ExcelでTIMEVALUE関数を使っても#VALUE!エラーが出ます。どうすればいいですか?

#VALUE!エラーは、TIMEVALUE関数に渡した値が文字列ではなく、数値型(シリアル値)の時刻データである場合に発生します。セルを選択して数式バーで確認し、左寄せ表示なら文字列、右寄せ表示なら数値型です。数値型の時刻には、代わりに=A1*86400または=HOUR(A1)*3600+MINUTE(A1)*60+SECOND(A1)を使用してください。

時刻の合計をSUM関数で計算すると25時間以上あるのに「1:00」と表示されます。なぜですか?

Excelの標準時刻書式「h:mm」は24時間を超えると0時間にリセットされるため、25時間は「1:00」と表示されます。解決するには、合計セルの書式設定を「ユーザー定義」で「[h]:mm」(角括弧付き)に変更してください。これにより25時間以上の合計も正しく「25:00」などと表示されます。

「=A1*86400」で変換したら小数点以下が出てしまいました。整数の秒数にするには?

秒の小数点以下を切り捨てて整数にするには=INT(A1*86400)を使います。四捨五入したい場合は=ROUND(A1*86400,0)、切り上げは=CEILING(A1*86400,1)を使用してください。実務の勤怠計算では通常「INT(切り捨て)」が使われます。

VBAマクロを実行しようとしたらエラーが出ます。原因は何ですか?

主な原因は(1)ファイルが.xlsx形式で保存されている(.xlsmに変更が必要)、(2)シート名「Sheet1」が実際のシート名と異なる、(3)A列のデータがExcelに時刻と認識されない形式になっている、の3つです。エラーメッセージと行番号を確認し、該当箇所のシート名やデータ形式を見直してください。

HOUR関数・MINUTE関数・SECOND関数とTIMEVALUE関数はどう使い分ければいいですか?

TIMEVALUE関数は「文字列として保存された時刻(例:CSVから取り込んだテキスト)」を数値に変換する際に使います。一方、HOUR・MINUTE・SECOND関数はExcelが時刻として認識している数値型データに使います。データの種類が不明な場合はISNUMBER(A1)で確認し、TRUEなら数値型のため×86400方式かHOUR/MINUTE/SECOND関数を、FALSEなら文字列のためTIMEVALUE関数を選択してください。

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました