- 作成日 : 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関数を使いこなし、効率的な時間データの分析を実現してください。正確な時間管理は、日々の業務効率を見直すうえでも重要です。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートのCOUNTIF関数の使い方!複数範囲や条件設定方法まで解説
Googleスプレッドシートでデータを集計するときに欠かせないのが COUNTIF関数 です。条件に合致するセルの数を自動で数えてくれるため、売上管理や在庫チェック、アンケート集計など、幅広いシーンで役立ちます。 この記事では、COUNTI…
詳しくみるエクセルのプルダウンの作り方とは?連動・追加・自動入力の方法まで解説
エクセルのプルダウン機能は、データ入力の効率を高め、ミスを減少させるための強力なツールです。プルダウンリストを利用することで、ユーザーは簡単に事前定義された選択肢から選ぶことができ、作業のスピードが向上します。本記事では、プルダウンの基本的…
詳しくみるINDEX関数とは?使い方やVLOOKUP関数との違いをわかりやすく解説
INDEX関数は、Excelにおいて特定のセルの値を簡単に取得するための強力な関数です。この関数は、行番号と列番号を指定することで、データが格納されている位置を特定し、そこから直接値を引き出します。本記事では、INDEX関数の基本的な使い方…
詳しくみるエクセルで行列を選択するショートカットをわかりやすく解説
エクセルを活用する上で、行や列を素早く選択するショートカットを知っておくと作業効率が大幅に向上します。本記事では、エクセルにおける行や列を選択するための便利なショートカットを詳しく解説します。また、選択した行や列の解除方法や、選択ができない…
詳しくみるスプレッドシートで足し算するには?数式や関数、セル参照の基本と応用まで解説
Googleスプレッドシートの「足し算」は、セルに直接数式を入力する方法から、SUM関数による効率的な合計、条件付き合計や配列関数による高度な集計まで、多様なやり方があります。 使い分けを理解すれば、売上集計や経費計算といった日々のデータ処…
詳しくみるエクセルはどうやって覚えた?基本機能から応用までの学習ロードマップ
エクセルのスキルは現代のビジネスシーンで必須となっていますが、その機能の多さから何から学べばよいか迷う方も多いでしょう。本記事では、エクセルを効果的に習得するための学習順序と方法を解説します。基本操作から実践的な学習方法、そして応用スキルま…
詳しくみる