- 作成日 : 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関数を使いこなし、効率的な時間データの分析を実現してください。正確な時間管理は、日々の業務効率を見直すうえでも重要です。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
ExcelのDAY関数の使い方!日付から「日」だけを取り出す方法と活用術
Excelで日付データを扱っているとき、「日付の中から『日』だけを取り出したい」と感じたことはありませんか?例えば、誕生日の日付データから「生まれた日」だけを抽出したい場合や、特定の日付のデータを基に集計を行いたい場合などに便利です。 この…
詳しくみるエクセルで数字を連続で入力する方法まとめ
エクセルはビジネスシーンにおいて、データ管理や集計に欠かせないツールですが、数字を連続して入力する手間に悩むことも多いでしょう。本記事では、エクセルで効率よく数字を連続で入力する方法をまとめました。オートフィル機能や関数を利用する方法など、…
詳しくみる備品管理をエクセルで行う方法をわかりやすく解説!無料テンプレートつき
備品管理をきちんと行いたいと思っていても、「どこから手をつければよいか分からない」「エクセルで管理表を作ったが活用しきれていない」と感じている方も多いのではないでしょうか。この記事では、初心者でも簡単に実践できる、エクセルを使った備品管理の…
詳しくみるPROPER関数の使い方:文字列を適切な大文字小文字に変換する方法
PROPER関数は、文字列の各単語の先頭文字を大文字に、それ以外を小文字に変換するエクセルの文字列関数です。名前や住所などのデータを統一的な形式に整える際に便利な関数です。 顧客データベースの整備、レポートの体裁統一、輸入データのクリーニン…
詳しくみるExcel(エクセル)の裏技・便利技!ショートカットや時短テクニックを解説
Excelの基本操作に慣れてきたら、次に身につけたいのが「時短テクニック」や「裏技」です。実は、ちょっとしたショートカットや関数の使い方を知っているだけで、毎日の作業が何倍もスムーズになります。 この記事では、初心者でもすぐに実践できるEx…
詳しくみるExcelのRANK.EQ関数の使い方:順位付けを簡単にマスターする方法
RANK.EQ関数は、Excelで数値データの順位を自動的に計算する便利な関数です。売上ランキングや成績順位、業績評価など、ビジネスや教育現場で頻繁に使用される機能で、大量のデータを瞬時に順位付けできます。 本記事では、RANK.EQ関数の…
詳しくみる