HLOOKUP関数の使い方|横方向の検索をマスター
HLOOKUP関数は、横方向(水平方向)にデータを検索する関数です。VLOOKUPが縦方向のデータ検索に使われるのに対し、HLOOKUPは行方向に並んだデータから値を取得する場面で活躍します。月別データや曜日別データなど、横に展開されたテーブルで特に便利です。
HLOOKUP関数の基本構文
=HLOOKUP(検索値, 範囲, 行番号, [検索の型])
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 検索値 | 検索する値。範囲の先頭行から探す | 必須 |
| 範囲 | 検索対象のセル範囲。先頭行に検索値が含まれる必要がある | 必須 |
| 行番号 | 範囲の先頭行から数えて何行目の値を返すかを指定 | 必須 |
| 検索の型 | FALSEで完全一致、TRUEまたは省略で近似一致 | 任意 |
VLOOKUPの「列番号」が「行番号」に変わっただけで、基本的な考え方は同じです。
VLOOKUPとの違い
| 項目 | VLOOKUP | HLOOKUP |
|---|---|---|
| 検索方向 | 縦方向(列) | 横方向(行) |
| 検索値の位置 | 範囲の左端列 | 範囲の先頭行 |
| 結果の指定 | 列番号 | 行番号 |
| 適したデータ | 縦に並んだリスト | 横に並んだテーブル |
実践例1:月別売上データから特定月の値を取得
横方向に月が並んだ売上データから、指定した月の売上を取得します。
1行目:(空白)、1月、2月、3月、4月、5月、6月
2行目:売上、120000、150000、180000、160000、200000、190000
3行目:経費、80000、90000、100000、95000、110000、105000
=HLOOKUP("3月", B1:G3, 2, FALSE)
先頭行(B1:G1)から「3月」を検索し、2行目(売上行)の値を返します。結果は180000です。
実践例2:経費データの取得
同じ表から経費を取得する場合は、行番号を変更するだけです。
=HLOOKUP("3月", B1:G3, 3, FALSE)
行番号を3に変更することで、3行目の経費(100000)が返されます。
実践例3:セル参照で月を動的に切り替える
検索値にセル参照を使い、月を自由に切り替えられるようにします。
=HLOOKUP(A10, B1:G3, 2, FALSE)
A10に月名を入力すると、対応する売上が自動的に表示されます。ドロップダウンリストと組み合わせると、さらに使いやすくなります。
実践例4:IFERRORとの組み合わせ
検索値が見つからない場合のエラー処理です。
=IFERROR(HLOOKUP(A10, B1:G3, 2, FALSE), "データなし")
存在しない月名を入力した場合に「データなし」と表示し、#N/Aエラーを回避します。
実践例5:年度と月を組み合わせた検索
INDEX+MATCH関数と組み合わせて、行方向と列方向の両方を動的に検索する例です。
=INDEX(B2:G4, MATCH(A10, A2:A4, 0), MATCH(B10, B1:G1, 0))
A10に行のラベル(売上・経費など)、B10に月名を入力すると、交差するデータが返されます。HLOOKUPだけでは行の指定が固定になるため、より柔軟な検索にはINDEX+MATCHが適しています。
よくあるエラーと対処法
#N/Aエラー
最も一般的なエラーです。以下の原因を確認してください。
- 検索値が先頭行にない: HLOOKUPは範囲の1行目のみを検索する。検索値が先頭行にあるか確認する
- 全角・半角の不一致: 「1月」と「1月」は異なる値として扱われる
- 余分なスペース: セルの前後に見えないスペースが入っている場合がある。TRIM関数で除去する
#REFエラー
行番号が範囲の行数を超えている場合に発生します。たとえば、3行の範囲に対して行番号4を指定するとエラーになります。
近似一致による意図しない結果
検索の型を省略した場合、既定値のTRUE(近似一致)が適用されます。完全一致で検索したい場合は必ずFALSEを指定してください。
HLOOKUP関数の利用が減っている理由
近年のExcelでは、HLOOKUP関数の利用頻度が減少しています。その理由は以下の通りです。
- データは縦方向に管理するのが一般的: データベースやテーブル機能では、データを列方向に格納する設計が標準的
- XLOOKUP関数で代替可能: XLOOKUP関数は縦横どちらの検索にも対応しているため、HLOOKUPを使う必要性が減っている
- INDEX+MATCH関数でも対応可能: より柔軟な検索が可能
ただし、月別集計表やカレンダー形式のデータなど、横方向にデータが並ぶ場面ではHLOOKUPがシンプルに記述できます。
Google スプレッドシートでの互換性
HLOOKUP関数はGoogle スプレッドシートでも同じ構文で利用できます。引数や動作はExcelと同一です。Google スプレッドシートでは近似一致の動作がExcelと若干異なる場合があるため、FALSEを明示的に指定することを推奨します。
まとめ
HLOOKUP関数は、横方向に並んだデータから値を検索する関数です。
- VLOOKUPの横方向版として、先頭行を検索して指定行のデータを返す
- 検索の型はFALSEを指定して完全一致検索を行うのが基本
- IFERRORと組み合わせてエラー処理を行う
- より柔軟な検索が必要な場合はXLOOKUPやINDEX+MATCHも検討する
横方向のデータ検索が必要な場面では、シンプルに記述できるHLOOKUPが依然として有用です。