- 作成日 : 2025年8月25日
HOUR関数の使い方:時刻データから時間を抽出する方法
HOUR関数は、時刻データから「時」の部分だけを取り出す関数です。勤怠管理での労働時間計算、スケジュール管理での時間帯別集計、24時間営業の売上分析など、時間に関するデータ処理で頻繁に使用されます。例えば、「14:30:45」という時刻から「14」という時間部分だけを抽出したい場合に便利です。本記事では、HOUR関数の基本的な使い方から実践的な活用シーン、他の時刻関数との組み合わせまで、初心者の方にもわかりやすく説明します。
目次
HOUR関数とは
HOUR関数は、指定した時刻から0から23までの整数として「時」を返す関数です。エクセルでは時刻を0から1までの小数として内部的に管理していますが、HOUR関数を使うことで、人間が理解しやすい時間の形式で取り出すことができます。
この関数の重要な特徴は、24時間制で時間を返すことです。午前0時は0、正午は12、午後11時は23として表示されます。時刻データの分析や、時間帯別の集計を行う際に、この関数はよく使われます。
HOUR関数の基本的な使い方
関数の構文を理解する
HOUR関数の構文は非常にシンプルです。
=HOUR(シリアル値)
シリアル値には、時刻データが入力されているセル参照、時刻を表す数値、または時刻を返す数式を指定します。
基本的な使用例
実際の使用例を見てみましょう。
A1セルに「9:15:30」という時刻が入力されている場合:
=HOUR(A1)
この結果は「9」となります。分や秒の情報は無視され、時間部分のみが抽出されます。
午後の時刻での例も確認しましょう。
A2セルに「15:45:00」という時刻がある場合:
=HOUR(A2)
結果は「15」となり、24時間制で表示されます。
様々な時刻形式への対応
HOUR関数は、様々な形式の時刻データに対応しています。文字列として入力された時刻も、エクセルが時刻として認識できる形式であれば処理可能です。
例えば、NOW関数で現在の日時を取得し、その時間部分を抽出する場合、
=HOUR(NOW())
この数式は、現在の時刻の「時」の部分を表示します。
HOUR関数の実践的な利用シーン
勤怠管理での活用
従業員の出退勤時刻から労働時間の計算において、HOUR関数はよく活用されます。出勤時刻と退勤時刻の時間帯を把握することで、早朝勤務や深夜勤務の判定が可能になります。
例えば、22時以降の勤務を深夜労働として区別する場合、対象の時刻からHOUR関数で“時”を抽出し、22以上または5未満で判定します(例:=IF(OR(HOUR(A2)>=22,HOUR(A2)<5),”深夜”,”通常”))。
さらに深夜手当を正しく自動計算するには、勤務開始(B2)と終了(C2)が日付またぎでも対応できるよう、勤務区間と深夜帯(22:00〜5:00)の重複“時間数”を求めます。例:
=24*( MAX(0, MIN(MOD(C2,1)+IF(MOD(C2,1)<MOD(B2,1),1,0), 1) – MAX(MOD(B2,1), TIME(22,0,0))) + MAX(0, MIN(MOD(C2,1)+IF(MOD(C2,1)<MOD(B2,1),1,0), TIME(5,0,0)+1) – 1) )
この式は、0〜1の時刻(シリアルの小数部)に正規化し、終了時刻が開始時刻より小さい場合は+1日してから、22:00〜24:00と0:00〜5:00の重複を合算して“時間”で返します。
営業時間帯の分析
小売業や飲食業では、時間帯別の売上分析が重要です。取引時刻からHOUR関数で時間を抽出し、どの時間帯に売上が集中しているかを把握できます。
ピークタイムの特定により、スタッフの配置最適化や、時間帯別のプロモーション戦略の立案が可能になります。24時間営業の店舗では特に、この分析が経営効率の改善につながります。
交通データの解析
交通量調査や配送管理において、時間帯別のデータ集計は欠かせません。通過時刻や配送完了時刻からHOUR関数で時間を抽出し、混雑時間帯や効率的な配送ルートを分析できます。
例えば、配送の遅延が発生しやすい時間帯を特定することで、配送スケジュールの最適化や、顧客への適切な配送時間の提案が可能になります。
HOUR関数の応用テクニック
時間帯別の分類
HOUR関数とIF関数を組み合わせて、時間帯を分類することができます。
=IF(HOUR(A1)<12, “午前”, “午後”)
さらに詳細な分類も可能です。
=IF(HOUR(A1)<6, “早朝”, IF(HOUR(A1)<12, “午前”, IF(HOUR(A1)<18, “午後”, “夜間”)))
営業時間内外の判定
営業時間(例:9時~18時)内かどうかを判定する場合:
=IF(AND(HOUR(A1)>=9, HOUR(A1)<18), “営業時間内”, “営業時間外”)
この判定を使って、時間外の問い合わせ数や、営業時間外の作業時間を集計できます。
時間の丸め処理
- 30分単位に四捨五入:=MROUND(A1, TIME(0,30,0))
- 30分単位に切り上げ:=CEILING(A1, TIME(0,30,0))
- 30分単位に切り捨て:=FLOOR(A1, TIME(0,30,0))
15分単位にしたい場合は、上式の TIME(0,30,0) を TIME(0,15,0) に置き換えます。これらはシリアル値全体に対して丸めるため、日付も保持されます。
この技術は、勤怠管理システムでよく使用される15分単位や30分単位の丸め処理に応用できます。
HOUR関数のよくあるエラーと対策
日付と時刻の混在
セルに日付と時刻の両方が入力されている場合でも、HOUR関数は正しく時間部分を抽出します。しかし、表示形式によっては時刻部分が見えないことがあります。
セルの書式設定で「日付と時刻」の表示形式を選択することで、データの全体像を確認できます。必要に応じて、TIME関数で時刻部分のみを抽出することも検討しましょう。
テキスト形式の時刻
時刻がテキストとして入力されている場合、HOUR関数はエラーを返すことがあります。
TIMEVALUE関数を使って、テキストを時刻に変換してから処理します。
=HOUR(TIMEVALUE(A1))
24時間を超える時間
勤務時間の累計など >24時間のデータは、HOUR ではなくシリアル値全体で扱います。
- 表示で正しく見せる(24時間超も表示):セルの表示形式を [h]:mm または [h]:mm:ss に設定。
- 総時間(小数の時間)を得る:=A1*24 ※A1 が累計時間(シリアル値)であることが前提。
- 整数時間にしたい:切り捨て =FLOOR(A1*24,1)/四捨五入 =ROUND(A1*24,0)/切り上げ =CEILING(A1*24,1)
- 総分・総秒が欲しい:=A1*24*60/=A1*24*3600
※A1 が**日時(日付+時刻)**の場合は、まず =MOD(A1,1) で時刻だけに正規化してから上式を適用します。
HOUR関数と他の関数との組み合わせ
MINUTE関数・SECOND関数との連携
時刻を完全に分解して処理する場合の例:
=HOUR(A1) & “時” & MINUTE(A1) & “分” & SECOND(A1) & “秒”
結果:「14時30分45秒」のような表示になります。
TIME関数での時刻の再構築
元の日時を保持したまま操作します。
- ちょうど1時間後:=A1 + TIME(1,0,0)(分・秒も維持)
- “1時間後の正時”(次のちょうど00分00秒):=FLOOR(A1, TIME(1,0,0)) + TIME(1,0,0)
どちらも23時台を含め翌日へ正しく繰り上がります。
SUMIFS関数での時間帯別集計
特定の時間帯の売上を集計する例:
=SUMIFS(売上範囲, 時刻範囲, “>=”&TIME(9,0,0), 時刻範囲, “<“&TIME(12,0,0))
この数式は9時から12時までの売上を合計します。
HOUR関数で補助列を作成する方法もあります。
=SUMIFS(売上範囲, 時間列, “>=9”, 時間列, “<12”)
COUNTIFS関数での時間帯別カウント
特定の時間帯のイベント数をカウント:
=COUNTIFS(時刻範囲, “>=”&TIME(18,0,0), 時刻範囲, “<“&TIME(22,0,0))
または、HOUR関数の結果を使って、
=COUNTIF(時間列, “>=18”) – COUNTIF(時間列, “>=22”)
VLOOKUP関数での時間帯マスタ参照
時間帯別の料金や係数を参照する例:
=VLOOKUP(HOUR(A1), 時間帯マスタ, 2, FALSE)
(0〜23がキーの完全一致。Excel 365 なら =XLOOKUP(HOUR(A1), キー列, 値列, ,0) でも可)
HOUR関数の実務での注意点
タイムゾーンの違いに注意
HOUR関数は時刻データをそのまま処理するため、海外の時刻を扱う場合は時差の調整が必要です。たとえばUTCから日本標準時(JST)に変換するには、対象の時刻に9時間を加算したうえでHOUR関数を使います。
サマータイムを考慮する場合
サマータイム制度がある国のデータを扱う場合は、対象日時が夏時間に該当するかを補助列などで判定し、必要に応じて時間をずらす対応が必要です。
大量データでは補助列を使う
HOUR関数を大量の行に直接使うと、処理が重くなることがあります。あらかじめHOURの結果を別列に抽出しておき、その列を参照することで再計算の負荷を軽減できます。
HOUR関数を活用しよう
HOUR関数は、時刻データから時間情報を抽出するシンプルで実用的な関数です。勤怠管理、売上分析、スケジュール管理など、時間が関わるあらゆる業務で活用できます。
基本的な使い方をマスターし、他の関数と組み合わせることで、より高度な時間分析が可能になります。24時間を超える時間の扱いやタイムゾーンの考慮など、実務での注意点を理解した上で活用することが大切です。ぜひ日々の業務でHOUR関数を使いこなし、効率的な時間データの分析を実現してください。正確な時間管理は、日々の業務効率を見直すうえでも重要です。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
IMSUB関数の使い方:複素数の減算を計算する方法
IMSUB関数は、2つの複素数の差を計算する関数です。電気工学での回路解析、信号処理、制御工学、物理学の波動計算など、複素数演算が必要な技術計算で活用されます。例えば、交流回路でのインピーダンスの差を計算したり、信号の位相差を解析したり、振…
詳しくみるSECOND関数の使い方:時刻データから秒を抽出する方法
SECOND関数は、時刻データから「秒」の部分だけを取り出す関数です。タイムスタンプの分析、競技タイムの記録管理、生産工程の詳細な時間測定、ログファイルの解析など、秒単位の精密な時間管理が必要な場面で活用されます。例えば、「14:25:37…
詳しくみるエクセルでシート移動するためのショートカットを紹介
エクセルを使用する際、複数のシートを効率的に移動する技術は、業務のスムーズな進行に欠かせません。シート間の移動を簡単にするためのショートカットキーや操作方法を活用することで、作業効率が大幅に向上します。本記事では、エクセルでシートを移動する…
詳しくみるDSUM関数の使い方:条件に一致するデータの合計を計算する方法
DSUM関数は、データベース形式の表から指定した条件に一致するレコードの合計を計算する関数です。売上データの条件付き集計、在庫管理での特定商品の合計、経費精算での部門別集計など、複雑な条件での合計計算が必要な場面で活用されます。 例えば、特…
詳しくみるSUM関数の使い方を初心者向けに解説!注意点やスプレッドシートでの活用まで
SUM関数は、ExcelやGoogleスプレッドシートなどでよく使用される基本的な関数の一つです。数字の合計を簡単に計算できるため、データの集計や分析を行う際に非常に便利です。本記事では、SUM関数の基本的な使い方から、利用シーン、注意点、…
詳しくみるエクセルで行列を追加する方法とショートカットを解説
エクセルを使用する際、行や列を追加することは非常に重要な操作です。適切に行列を追加することで、データの整理や分析がスムーズに行えます。この記事では、エクセルで行列を追加する具体的な方法と、便利なショートカットキーについて詳しく解説します。こ…
詳しくみる