Excel

【Excel】エクセルで日付時刻から時刻だけ抽出、表示する方法(日時から時間分秒を取得、関数、書式設定、マクロ)

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

この記事では、エクセルで日付時刻から時刻だけを抽出・表示する方法について解説していきます。

ポイントは、以下の3点です。

・関数を使う方法

・書式設定を使う方法(表示のみ変更)

・マクロを使う方法

エクセル操作は1つ1つ追っていけば必ずうまくできるため、ぜひ本記事を参考にスキルアップにつなげてくださいませ♪

関数で日付時刻から時刻を抽出する方法

それでは以下のサンプルを用いて関数での日付時刻から時刻を抽出する方法を確認していきます。
例えば、以下のようなデータがあるとします。

これから時刻だけを抽出するには、B2セルに以下の数式を入力します。

=TIME(HOUR(A2),MINUTE(A2),SECOND(A2))

ここでは、TIME関数にHOUR関数、MINUTE関数、SECOND関数で抽出した時、分、秒を渡すことで時刻を取り出しています。

HOUR関数は時間、MINUTE関数は分、SECOND関数は秒をそれぞれ返します。

そしてTIME関数でそれらを時刻として再構成しているのです。


ENTERで処理を確定させます。


その後、B2セルの右下にカーソルを合わせてダブルクリックすると、数式がB列全体にオートフィルされます。

書式設定で日付時刻から時刻を抽出する方法

続いては書式設定を使った日付時刻から時刻を抽出する方法を確認していきます。

例えば、2023/4/1 10:30:00のようなデータをA2セルに入力します。

次に、A2セルを選択し、ホームタブの数値から「時刻」を選択します。

もしくはホーム→書式設定からセルの書式設定で「時刻」を選択してもよいです。


すると、A2セルには10:30:00と時刻だけが表示されます。

ただし、これはあくまで表示上の変更であり、セルの値は元の日時のままであることに注意が必要です。

計算等で使用する際は関数などを使って時刻を抽出する必要があります。

1つずつ丁寧に理解することがポイントです♪

マクロで日付時刻から時刻を抽出する

最後にマクロを使った日付時刻から時刻を抽出する方法を見ていきましょう。


Sub ExtractTime()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To lastRow
        If Not IsEmpty(Cells(i, 1)) Then
            Cells(i, 2) = Format(Cells(i, 1), "hh:mm:ss")
        End If
    Next i
End Sub

このマクロは選択したセルの日付時刻データから全て時刻だけを抽出します。

なお、秒を表示したくない場合は、フォーマット部分を以下のように変更できます。


Cells(i, 2) = Format(Cells(i, 1), "hh:mm")

これをループ内で選択範囲の各セルに適用することで、一括で時刻だけを抽出しています。

実行するには、開発タブからVisual Basic Editorを開き、モジュールに上記コードを貼り付けて実行します。

まとめ エクセルで日付時刻から時刻を抽出・表示する方法

以上、エクセルで日付時刻から時刻を抽出・表示する3つの方法を紹介しました。

関数を使えば値として時刻を抽出でき、書式設定では表示を時刻に変更できます(値は変わりません)。

そして、大量のデータならマクロを使うのも有効です。用途に応じて使い分けると良いでしょう。