【Excel】HOUR・MINUTE・SECOND関数で時刻を分解する方法

【Excel】HOUR・MINUTE・SECOND関数で時刻を分解する方法
🛡️ 超解決

Excelで時刻データを扱っていると、時・分・秒といった単位で分解したい場面が出てきます。例えば、作業時間の集計や、特定の時間帯のデータを抽出する際に必要になるでしょう。しかし、時刻は数値として扱われるため、そのままでは分解が難しいと感じるかもしれません。この記事では、ExcelのHOUR、MINUTE、SECOND関数を使って、時刻データを簡単に時・分・秒に分解する具体的な手順を解説します。もう時刻データの扱いに悩むことはありません。

【要点】Excelで時刻を時・分・秒に分解する基本

  • HOUR関数: セルに入力された時刻から「時」の数値を抽出します。
  • MINUTE関数: セルに入力された時刻から「分」の数値を抽出します。
  • SECOND関数: セルに入力された時刻から「秒」の数値を抽出します。

ADVERTISEMENT

時刻データがExcelでどのように扱われるかの理解

Excelでは、日付や時刻はシリアル値と呼ばれる数値で管理されています。日付は1900年1月1日を「1」として、それからの経過日数を整数で表します。一方、時刻は1日を「1」としたときの割合で表され、小数部分として格納されます。例えば、「12:00:00」は「0.5」、「18:00:00」は「0.75」となります。HOUR、MINUTE、SECOND関数は、このシリアル値から特定の時間単位の情報を抜き出す役割を果たします。これらの関数を理解することで、時刻データの操作が格段に容易になります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

HOUR・MINUTE・SECOND関数の基本機能と仕組み

これらの関数は、Excelが内部で時刻をどのように数値として扱っているかを理解する上で非常に役立ちます。それぞれが時刻データから特定の要素を取り出すことに特化しています。

HOUR関数の詳細

HOUR関数は、指定したシリアル値から「時」の情報を整数で返します。例えば、セルA1に「14:30:15」という時刻が入っている場合、HOUR(A1)と入力すると「14」が返されます。これは24時間表記のまま抽出されるため、0から23までの数値になります。AM/PMの区別はありません。この関数は、特定の時間帯(例: 9時から17時の間)のデータを集計したい場合に便利です。

MINUTE関数の詳細

MINUTE関数は、指定したシリアル値から「分」の情報を整数で返します。例えば、セルA1に「14:30:15」が入っている場合、MINUTE(A1)と入力すると「30」が返されます。この関数は0から59までの数値を返します。作業時間の詳細な分析や、特定の分単位でのデータ抽出に活用できます。

SECOND関数の詳細

SECOND関数は、指定したシリアル値から「秒」の情報を整数で返します。例えば、セルA1に「14:30:15」が入っている場合、SECOND(A1)と入力すると「15」が返されます。この関数は0から59までの数値を返します。精度が求められるデータ分析や、秒単位での正確な計測が必要な場合に利用します。

時刻を分解する具体的な操作手順

ここでは、実際にExcelのワークシート上で、時刻データをHOUR、MINUTE、SECOND関数を使って分解する手順を説明します。サンプルデータを用意して、順を追って操作してみましょう。

  1. サンプルデータの準備
    ExcelシートのA列に、時刻データが入力されたセルを用意します。例えば、A1セルに「9:05:30」、A2セルに「17:45:10」、A3セルに「23:59:59」といった形式で入力してください。これらのセルは、Excelが時刻として正しく認識できる書式(例: 時:分:秒)で入力されている必要があります。もし正しく認識されない場合は、セルの書式設定を「時刻」に変更してください。
  2. HOUR関数の適用
    B1セルに、A1セルの時刻の「時」を抽出する数式を入力します。B1セルを選択し、以下の数式を入力してEnterキーを押してください。

    =HOUR(A1)

    これにより、B1セルには「9」が表示されます。この数式をB2セル、B3セルにもコピー(フィルハンドルをドラッグ)すると、それぞれの時刻の「時」が抽出されます。

  3. MINUTE関数の適用
    C1セルに、A1セルの時刻の「分」を抽出する数式を入力します。C1セルを選択し、以下の数式を入力してEnterキーを押してください。

    =MINUTE(A1)

    これにより、C1セルには「5」が表示されます。この数式をC2セル、C3セルにもコピーすると、それぞれの時刻の「分」が抽出されます。

  4. SECOND関数の適用
    D1セルに、A1セルの時刻の「秒」を抽出する数式を入力します。D1セルを選択し、以下の数式を入力してEnterキーを押してください。

    =SECOND(A1)

    これにより、D1セルには「30」が表示されます。この数式をD2セル、D3セルにもコピーすると、それぞれの時刻の「秒」が抽出されます。

  5. 結果の確認と書式設定
    これで、A列の時刻データがB列(時)、C列(分)、D列(秒)に分解されました。各列の数値が期待通りに表示されているか確認してください。もし、B、C、D列の数値が「0」や「00:00:00」のような時刻形式で表示される場合は、これらの列のセルの書式設定を「標準」または「数値」に変更してください。これにより、正確な数値として表示されます。

ADVERTISEMENT

時刻分解時の注意点とよくある誤解

HOUR、MINUTE、SECOND関数は非常に便利ですが、いくつか注意すべき点があります。これらの点を知っておくことで、意図しない結果になるのを防ぐことができます。

セルの書式設定による影響

最も注意すべきは、元の時刻データが正しくExcelに認識されているかどうかです。セルに「9:05」と入力しても、Excelがそれを時刻としてではなく、文字列として扱ってしまうことがあります。その場合、HOUR関数などを使ってもエラーになったり、意図しない結果になったりします。入力したセル、または参照するセルの書式設定が「時刻」になっているか、あるいはExcelが自動で時刻として認識できる形式(例: 14:30:00)になっているかを確認してください。

日付部分が含まれる場合の挙動

もし、参照するセルに日付と時刻の両方が含まれている場合、これらの関数は日付部分を無視して時刻部分のみを抽出します。例えば、セルA1に「2023/10/27 14:30:15」と入力されていても、HOUR(A1)は「14」、MINUTE(A1)は「30」、SECOND(A1)は「15」を返します。これは、Excelが日付と時刻をシリアル値の整数部と小数部で区別しているためです。しかし、この挙動を理解しておかないと、日付情報まで考慮した計算をしたい場合に混乱する可能性があります。

深夜0時をまたぐ時刻の扱い

これらの関数は、0時から23時までの範囲で時を抽出します。そのため、例えば「25:00:00」のような時刻はExcelでは通常無効な入力となります。もし、深夜0時をまたぐ時間を表現したい場合(例: 翌日の午前1時を25時と表記したい)、Excelの標準機能だけでは直接対応できません。そのような場合は、数式で工夫するか、時刻データを文字列として扱うなどの別の方法を検討する必要があります。ただし、標準的な時刻データ(00:00:00~23:59:59)であれば、これらの関数は正しく機能します。

Excel 2019以前のバージョンとの互換性

HOUR、MINUTE、SECOND関数は、Excelの非常に古いバージョンから存在する基本的な関数です。そのため、Excel 2019、Excel 2021、Microsoft 365といったどのバージョンでも、これらの関数は問題なく利用できます。古いバージョンから最新のバージョンへの移行や、異なるバージョン間でファイルを共有する際にも、互換性の心配はほとんどありません。安心して活用してください。

時刻分解関数と他の時刻関数との連携

HOUR、MINUTE、SECOND関数は単独でも便利ですが、他のExcelの時刻関連関数と組み合わせることで、さらに高度なデータ分析や処理が可能になります。ここでは、代表的な連携例を紹介します。

TIME関数との組み合わせ

HOUR、MINUTE、SECOND関数で分解した時、分、秒を再び一つの時刻データとして結合したい場合にTIME関数が役立ちます。例えば、B1セルに時、C1セルに分、D1セルに秒が入っている場合、以下の数式で元の時刻データ(またはそれに近い時刻)を再構成できます。

=TIME(B1, C1, D1)

この関数は、指定された時、分、秒からシリアル値としての時刻を生成します。分解したデータを別の形式で再構成したい場合に有効です。

TEXT関数との組み合わせ

分解した時、分、秒を特定の文字列形式で表示したい場合は、TEXT関数と組み合わせます。例えば、時、分、秒がそれぞれB1、C1、D1セルにあるとして、「HH時MM分SS秒」のような形式で表示するには、以下の数式を使用します。

=TEXT(B1,"00")&"時"&TEXT(C1,"00")&"分"&TEXT(D1,"00")&"秒"

TEXT関数で数値を2桁のゼロ埋め文字列に変換し、それを文字列結合演算子(&)で繋げています。これにより、例えば「9時5分30秒」が「09時05分30秒」のように整形されて表示されます。

IF関数やFILTER関数との組み合わせ

特定の時間帯のデータを抽出・集計したい場合、IF関数やFILTER関数とHOUR関数などを組み合わせると便利です。例えば、「9時から17時の間のデータだけを表示したい」という場合、IF関数を使ってHOUR(A1)>=9 AND HOUR(A1)<17 という条件でデータを絞り込むことができます。FILTER関数(Microsoft 365で利用可能)を使えば、より効率的に条件に合う行を抽出できます。

HOUR・MINUTE・SECOND関数とVLOOKUP・XLOOKUP関数

時刻データを検索キーとしてVLOOKUP関数やXLOOKUP関数を使用する際の注意点についても触れておきましょう。これらの関数は、検索対象のデータと検索キーが完全に一致しないと、目的のデータを正しく取得できません。

VLOOKUP関数での時刻検索

VLOOKUP関数で時刻を検索する場合、検索対象の列が「時刻」として認識されていることが重要です。もし、検索対象の列が文字列として保存されていたり、小数点以下の桁数が微妙に異なったりすると、検索が失敗することがあります。このような場合、検索キー側でHOUR関数などを使って時・分・秒を分解し、それぞれの値で検索する、あるいは検索対象の列のデータ形式を統一するといった対応が必要になります。

XLOOKUP関数での時刻検索

XLOOKUP関数はVLOOKUP関数よりも柔軟な検索が可能ですが、それでもデータ形式の一致は重要です。例えば、検索対象の時刻データに日付部分が含まれている場合、検索キーには日付部分を含めない、あるいは検索対象の時刻データから日付部分を取り除くといった工夫が必要です。もし、時刻の分解が必要な検索であれば、あらかじめHOUR関数などで分解しておいた列を検索対象にするのが最も確実な方法です。

比較:HOUR・MINUTE・SECOND関数と時刻の文字列検索

時刻データを文字列として扱って検索することも可能ですが、一般的には推奨されません。例えば、「14:30」という文字列で検索する場合、検索対象のデータも「14:30」という文字列である必要があります。しかし、Excelでは「14:30」と「14:30:00」のように、秒の有無で文字列が異なってしまうことがあります。また、時刻を数値として扱うHOUR関数などを使えば、たとえ表示形式が異なっていても(例: 「14:30」と「14:30:00」)、正確に「14時」や「30分」として抽出できるため、より信頼性の高いデータ処理が可能です。

このように、HOUR、MINUTE、SECOND関数を理解し、適切に利用することで、Excelでの時刻データの分析や処理の幅が大きく広がります。これらの関数は、Excelでデータを扱う上で基本となるものですから、ぜひマスターしておきましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】