エクセル関数辞典 エクセル関数辞典

HOUR・MINUTE・SECOND関数の使い方|時刻の時分秒を抽出

HOUR MINUTE SECOND 時刻 勤務時間 Excel関数
広告スペース (article-top)

HOUR関数・MINUTE関数・SECOND関数は、時刻データから時・分・秒の数値をそれぞれ取り出すExcelの関数です。勤務時間の集計、時間帯別のデータ分析、タイムスタンプの処理など、時刻を分解して扱う場面で欠かせません。日付関数のYEAR・MONTH・DAYと対になる関数です。

各関数の基本構文

HOUR関数

=HOUR(シリアル値)

時刻から「時」を0~23の数値で返します。

MINUTE関数

=MINUTE(シリアル値)

時刻から「分」を0~59の数値で返します。

SECOND関数

=SECOND(シリアル値)

時刻から「秒」を0~59の数値で返します。

引数の説明

引数説明必須/任意
シリアル値時・分・秒を取り出す対象の時刻データ必須

基本的な使い方

セルA2に「14:35:20」が入力されている場合の動作です。

数式結果説明
=HOUR(A2)14時を返す
=MINUTE(A2)35分を返す
=SECOND(A2)20秒を返す

日付と時刻の両方を含むデータ

「2026/04/01 14:35:20」のように日付と時刻が結合されたデータでも、時刻部分を正しく取り出せます。

=HOUR("2026/04/01 14:35:20")    ' 結果:14
=MINUTE("2026/04/01 14:35:20")  ' 結果:35

NOW関数との組み合わせ

現在の時刻情報を取得する場合に使います。

=HOUR(NOW())      ' 現在の「時」
=MINUTE(NOW())    ' 現在の「分」
=SECOND(NOW())    ' 現在の「秒」

Excelの時刻とシリアル値の仕組み

Excelは時刻を0~1の小数値で管理しています。0が0:00:00(午前0時)、0.5が12:00:00(正午)、1が24:00:00です。

時刻シリアル値
0:00:000
6:00:000.25
12:00:000.5
18:00:000.75
24:00:001

時刻を数値(時間数)に変換する

時刻データを時間数(小数)に変換するには、24を掛けます。

=A2 * 24

A2が「8:30」なら8.5(時間)になります。HOUR関数とMINUTE関数で書くと次のとおりです。

=HOUR(A2) + MINUTE(A2)/60 + SECOND(A2)/3600

実践例1:勤務時間の計算

出勤時刻と退勤時刻から勤務時間を計算する例です。

サンプルデータ

A列(社員名)B列(出勤)C列(退勤)D列(休憩)
山田太郎9:0018:001:00
鈴木花子8:3017:301:00
佐藤一郎10:0019:301:00

実労働時間の計算

退勤時刻から出勤時刻を引き、休憩時間を差し引きます。

=C2 - B2 - D2

結果は時刻形式で表示されます。山田太郎の場合は「8:00」です。

時間数での表示

時間数(小数)で表示するには24を掛けます。

=(C2 - B2 - D2) * 24

山田太郎の場合は8(時間)が返ります。

残業時間の計算

所定労働時間(8時間)を超えた分を残業時間として計算します。

=MAX((C2 - B2 - D2) * 24 - 8, 0)

MAX関数で負の値(残業なし)を0にしています。佐藤一郎の場合は0.5(30分の残業)です。

実践例2:時間帯別の集計

売上データやアクセスログを時間帯ごとに集計する例です。

売上データのサンプル

A列(日時)B列(売上)
2026/04/01 9:153,200
2026/04/01 11:405,800
2026/04/01 13:054,100
2026/04/01 15:306,500
2026/04/01 17:452,900

午前・午後の集計

HOUR関数で時間帯を判定し、午前と午後に分けて集計します。

=SUMPRODUCT((HOUR(A2:A6)<12)*B2:B6)    ' 午前の合計
=SUMPRODUCT((HOUR(A2:A6)>=12)*B2:B6)   ' 午後の合計

3時間ごとの時間帯別集計

=SUMPRODUCT((HOUR(A2:A6)>=9)*(HOUR(A2:A6)<12)*B2:B6)     ' 9-12時
=SUMPRODUCT((HOUR(A2:A6)>=12)*(HOUR(A2:A6)<15)*B2:B6)    ' 12-15時
=SUMPRODUCT((HOUR(A2:A6)>=15)*(HOUR(A2:A6)<18)*B2:B6)    ' 15-18時

時間帯のラベルを自動付与

各データに時間帯のラベルを付けるには、INT関数と組み合わせます。

=INT(HOUR(A2)/3)*3 & "時~" & INT(HOUR(A2)/3)*3+3 & "時"

結果は「9時~12時」「15時~18時」のような文字列です。

実践例3:深夜勤務の時間計算

日をまたぐ勤務(夜勤)の場合は、退勤時刻が出勤時刻より小さくなります。

日またぎの判定

=IF(C2 < B2, C2 + 1 - B2 - D2, C2 - B2 - D2)

退勤時刻(C2)が出勤時刻(B2)より小さい場合は、退勤時刻に1(24時間)を加算してから計算します。

深夜時間帯(22時~翌5時)の計算

深夜割増の対象となる時間を算出する例です。

=MAX(MIN(C2+IF(C2<B2,1,0), 5/24) - MAX(B2, 22/24), 0) * 24

この数式は22:00~翌5:00の範囲内にある勤務時間を時間数で返します。22/24と5/24は、それぞれ22:00と5:00のシリアル値です。

実践例4:時刻の丸め処理

勤怠管理では、打刻時刻を15分単位や30分単位で丸める処理が必要な場合があります。

15分単位で切り捨て

=FLOOR(A2, "0:15")

9:07の打刻が9:00に、9:18の打刻が9:15に切り捨てられます。

15分単位で切り上げ

=CEILING(A2, "0:15")

9:07の打刻が9:15に、9:18の打刻が9:30に切り上げられます。

HOUR・MINUTE関数を使った丸め

FLOOR関数やCEILING関数を使わずに、HOUR関数とMINUTE関数で丸め処理を行う方法です。

=TIME(HOUR(A2), INT(MINUTE(A2)/15)*15, 0)

15分単位で切り捨てた時刻をTIME関数で組み立てています。

実践例5:経過時間の表示

開始時刻からの経過時間を「○時間○分」の形式で表示する例です。

数式

=HOUR(C2-B2) & "時間" & MINUTE(C2-B2) & "分"

B2が「9:00」、C2が「17:30」の場合、「8時間30分」が返ります。

24時間を超える場合の注意

HOUR関数は0~23の値しか返しません。24時間を超える時間差を扱う場合は、次のように計算します。

=INT((C2-B2)*24) & "時間" & MINUTE(C2-B2) & "分"

シリアル値に24を掛けてINT関数で時間部分を取り出すことで、24時間を超える値にも対応できます。

よくあるエラーと対処法

#VALUE!エラー

時刻として認識できない値を指定した場合に発生します。

' エラーになる例
=HOUR("時刻なし")

IFERROR関数でエラーを処理できます。

=IFERROR(HOUR(A2), "")

時間の合計が24時間を超えると正しく表示されない

時刻の合計が24時間を超える場合、既定の表示形式では正しく表示されません。セルの書式設定で表示形式を「[h]:mm」に変更してください。角括弧を付けることで24時間を超えた合計が表示されます。

時刻が小数で表示される

セルの書式が「標準」の場合、時刻は小数値で表示されます。書式設定を「時刻」に変更するか、「h:mm」の表示形式を指定してください。

TIME関数との組み合わせ

HOUR・MINUTE・SECOND関数で分解した時刻を再構築するにはTIME関数を使います。

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

この組み合わせは、秒を切り捨てて時分のみの時刻に変換する場合などに使います。

=TIME(HOUR(A2), MINUTE(A2), 0)    ' 秒を切り捨て

Google スプレッドシートでの互換性

HOUR関数・MINUTE関数・SECOND関数はGoogle スプレッドシートでも同じ構文・同じ動作で利用可能です。時刻のシリアル値の扱いも同一です。

まとめ

HOUR・MINUTE・SECOND関数は時刻から時・分・秒を個別に取り出す基本関数です。

  • HOUR関数は時(0~23)、MINUTE関数は分(0~59)、SECOND関数は秒(0~59)を返す
  • 勤務時間の計算では出退勤時刻の差から休憩時間を引いて求める
  • 時間帯別の集計にはHOUR関数とSUMPRODUCT関数の組み合わせが有効
  • 日をまたぐ勤務は退勤時刻に1を加算して計算する
  • 打刻の丸め処理にはFLOOR関数やCEILING関数と組み合わせると便利

勤怠管理、時間帯分析、タイムスタンプ処理など、時刻データを扱う場面でこれらの関数は欠かせません。TIME関数と合わせて使いこなしましょう。

広告スペース (article-bottom)

あわせて読みたい