はじめに
Excelで表形式のデータから特定の値を検索する際、VLOOKUP関数と並んでよく使われるのがHLOOKUP関数です。VLOOKUP関数が縦方向の検索を行うのに対し、HLOOKUP関数は横方向の検索を行います。この記事では、HLOOKUP関数の基本的な使い方から応用までを、画像例を交えて詳しく解説します。
VLOOKUP の基本(書き方・別シート・#N/A を出さない方法・一致しない原因)は、エクセルのVLOOKUPの使い方にまとめています。
基本の使い方:年度から売上の合計を取り出す
手順:B11 に HLOOKUP の式を入れて Enter
年度ごとの売上の表から、B10 の年度(2018年)の合計を取り出します。見出しが横に並んでいるので、横に探す HLOOKUP を使います。 B11 に次の式を入力して、Enter キーを押します❶。
=HLOOKUP(B10,B2:F7,6,FALSE) B10B2:F76FALSEオレンジに「探す見出し」、青に「見出しの行を上にした表」、紫に「取り出したい行が上から何行目か」を入れます。例:月(H1)の列から、表の 3 行目の値
=HLOOKUP(H1,$B$1:$M$5,3,FALSE) - 行番号は「シートの行番号」ではなく、範囲の上から数えます(ここでは 2 行目の見出しが 1)。

確認:12,893 は 2018年の列の 6 行目(合計)

答えは 12,893 になりました❷。式は、次の順に計算しています。
- 表のいちばん上の行(B2:F2)から、「2018年」を探す
⇒ E 列 - その列の、範囲の上から 6 行目(合計)を取り出す
⇒ 12,893
HLOOKUP関数とは?
HLOOKUP関数は、「Horizontal Lookup(水平検索)」の略で、表の最上段の行で特定の値を検索し、同じ列の指定した行から値を返す関数です。
基本的な構文
Excel
各引数の意味は以下の通りです。
- 検索値(必須): 検索する値を指定します。画像例では、セルB10の「2018年」が検索値です。
- 範囲(必須): 検索対象となるセル範囲を指定します。画像例では、B2:F7の「売上数推移」の表全体が範囲です。
- 行番号(必須): 返す値がある行の番号を指定します。「範囲」の最上段の行を1として、下に行くにつれて2、3と増えていきます。画像例では「6」が指定されており、最下段の「合計」行の値が返されます。
- 検索の型(省略可能):
- TRUE(または1):近似一致。検索値が見つからない場合、検索値以下の最大の値が使用されます。「範囲」の最上段の行は昇順に並べ替えられている必要があります。
- FALSE(または0):完全一致。検索値と完全に一致する値のみが返されます。通常はFALSE(0)を使用します。画像例では「FALSE」が指定されています。
<Excelサンプルデータダウンロード>
Excel HLOOKUP関数:横方向のデータ検索をマスター!表引きを効率化

画像例の具体的な解説
画像例では、セルB11に以下の数式が入力されています。
Excel
この数式は、以下の処理を行っています。
画像では、「2018年」の合計値「12,893」が正しく表示されていることが確認できます。
▶ この式(B7)を、上の練習ツールで試す / この式(C7)を、上の練習ツールで試す / この式(D7)を、上の練習ツールで試す

まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
Excelのサンプルデータダウンロード
以下は、上記画像のExcelデータですので、ダウンロードして練習などに使用してください。
HLOOKUP関数の活用例
- 商品名から価格を検索(商品名が横方向に並んでいる場合)
- 日付から売上データを検索(日付が横方向に並んでいる場合)
- 支店名から支店情報を検索(支店名が横方向に並んでいる場合)
HLOOKUP関数の注意点
- 並べ替え: 近似一致検索(
検索の型にTRUEまたは1を指定)を使用する場合、「範囲」の最上段の行は必ず昇順に並べ替えてください。並べ替えられていない場合、正しい結果が得られません。 - 検索値が見つからない場合: 完全一致検索(
検索の型にFALSEまたは0を指定)で検索値が見つからない場合、#N/Aエラーが返されます。 - 大文字・小文字の区別: 英字の大文字と小文字は区別されません。
【実機で検証】行を挿入すると HLOOKUP の結果はどうなるか
4 月と 5 月の売上の表に行を挿入したときの動きと、HLOOKUP のエラーを Excel の実機で試しました。

| 場面 | 結果 | 対処 |
|---|---|---|
| 表の途中に行を挿入する | 別の行の値に変わる(50→20、エラーなし) | 行番号を直す。XLOOKUP なら変わらない |
| 第4引数を省略する | #N/A(FALSE なら 50) | FALSE を指定する |
| 行番号が範囲の行数を超える | #REF! | 範囲の行数以内にする |
| 行番号が 0 | #VALUE! | 1 以上にする |
| 上から 2 行目以降の値で探す | HLOOKUP は #N/A | XLOOKUP(50,A4:D4,A1:D1) なら探せる |
行番号は、行を挿入しても自動で変わりません。挿入したあとは範囲だけが A1:D4 に広がり、行番号の 3 は同じ 3 のままなので、エラーが出ないまま別の行の値を返しました。
第4引数を省略すると、並べ替えていない表では、見出しにある「みかん」でも #N/A になりました。ワイルドカード(”み*”)は FALSE の指定で使えました。
VLOOKUP関数とHLOOKUP関数の使い分け
| 特徴 | VLOOKUP関数 | HLOOKUP関数 |
|---|---|---|
| 検索方向 | 縦方向(列) | 横方向(行) |
| 検索対象 | 範囲の左端の列 | 範囲の最上段の行 |
| 主な用途 | 縦にデータが並んだ表の検索 | 横にデータが並んだ表の検索 |
まとめ
HLOOKUP関数は、VLOOKUP関数と対になる関数で、横方向のデータ検索に非常に役立ちます。特に、表の最上段の行に検索したい値が並んでいる場合に有効です。VLOOKUP関数とHLOOKUP関数を適切に使い分けることで、Excelでのデータ検索作業を効率化できます。
この解説で、HLOOKUP関数についてより深く理解できたかと思います。この情報を活用し、Excelでのデータ分析をより効率的に行いましょう。
VLOOKUP関数と関連する検索関数の使い分けは、こちらのまとめで整理しています。

