Excelの数ある関数の中でも、データを効率よく検索・抽出する際に欠かせないのが「検索/行列関数」と呼ばれる関数です。
その中でも、特に知名度が高いのが「VLOOKUP関数」ですよね。
縦方向の検索でよく使われるVLOOKUP関数は、もうマスターしているという方も多いかもしれません。
でも、「HLOOKUP関数」という関数はご存じでしょうか?
VLOOKUP関数と名前が似ているけれど、具体的にどう使うのか、VLOOKUP関数と何が違うのか、よくわからないという方もいらっしゃるかもしれませんね。
実はHLOOKUP関数は、横方向に並んだデータから必要な情報を探し出すときに、とっても便利な関数なんです!📊

この記事では、HLOOKUP関数の基本的な使い方から、VLOOKUP関数との違い、具体的な使用例、そして使う上での注意点まで、HLOOKUP関数をマスターするための情報をぎゅっと凝縮してお届けします。HLOOKUP関数を使いこなして、日々の業務をさらに効率化していきましょう!
HLOOKUP関数ってどんな関数? VLOOKUP関数との違いも解説
まずは、HLOOKUP関数がどんな関数なのか、そしてVLOOKUP関数との違いについて見ていきましょう。
HLOOKUP関数は「横」に検索する関数
HLOOKUP関数の「H」は「Horizontal(水平)」の頭文字を取っています。
その名の通り、HLOOKUP関数は
「指定した範囲の1行目から検索値を探し、その行の右方向にある指定した行のデータを取り出す」ことができる関数です。


例えば、商品の管理表で「商品名」が横一列に並んでいて、そこから「価格」や「在庫数」などの情報を引き出したい場合にHLOOKUP関数が活躍します!
VLOOKUP関数・XLOOKUP関数との違いは「検索方向」と「柔軟性」
一方、皆さんもよくご存じのVLOOKUP関数の「V」は「Vertical(垂直)」の頭文字です。
VLOOKUP関数は
「指定した範囲の1列目から検索値を探し、その列の下方向にある指定した列のデータを取り出す」関数です。
そして、VLOOKUP関数やHLOOKUP関数の後継として登場したのがXLOOKUP関数です。
XLOOKUP関数は、
VLOOKUP関数やHLOOKUP関数よりも柔軟性が高く、縦方向・横方向どちらの検索にも対応でき、検索列(行)と結果列(行)を別々に指定できるなど、より多機能な関数です。
HLOOKUP関数、VLOOKUP関数、XLOOKUP関数の主な違いをまとめたのが以下の表です。
関数名 | 検索方向 | 検索対象 | 値の取り出し方 | 特徴 |
HLOOKUP関数 | 横方向(水平) | 範囲の1行目 | 指定した行のデータ | 検索値が常に範囲の1行目にある必要がある |
VLOOKUP関数 | 縦方向(垂直) | 範囲の1列目 | 指定した列のデータ | 検索値が常に範囲の1列目にある必要がある |
XLOOKUP関数 | 縦・横どちらも可能 | 指定した検索範囲 | 指定した戻り範囲のデータ | 検索範囲と戻り範囲を別々に指定でき、柔軟性が高い。エラー処理や近似一致のオプションも豊富。 |
どちらの関数を使うべきかは、元データの配置や、どのような検索を行いたいかによって変わってきます。
横方向にデータが並んでいる場合はHLOOKUP関数、縦方向にデータが並んでいる場合はVLOOKUP関数、そしてより柔軟な検索やエラー処理を行いたい場合はXLOOKUP関数、と覚えておくと良いでしょう。

VLOOKUP関数について知りたい方は以下のブログを参考にしてみてください!

XLOOKUP関数の使い方やVLOOKUP関数との比較について知りたい方は以下のブログを参考にしてみてください!
HLOOKUP関数の基本的な使い方
それでは、HLOOKUP関数の具体的な使い方を見ていきましょう。HLOOKUP関数は次の書式で記述します。
=HLOOKUP(検索値, 範囲, 行番号, 検索方法)
それぞれの引数について詳しく見ていきましょう。
- 検索値(lookup_value): 検索したい値を指定します。セル参照(例:
A1
)や直接入力(例:"商品A"
、100
)などで指定します。 - 範囲(table_array): 検索の対象となるセル範囲を指定します。HLOOKUP関数は、この範囲の1行目から検索値を探します。検索範囲は、絶対参照(例:
$A$1:$E$5
)で指定することが一般的です。 - 行番号(row_index_num): 「範囲」の先頭行を「1」としたときに、何行目のデータを取り出したいかを数値で指定します。例えば、3行目のデータを取り出したい場合は「3」と入力します。
- 検索方法(range_lookup): 検索方法を指定します。
TRUE
または1
:近似一致(昇順に並べ替えられたデータで、検索値以下で最も近い値を探します。省略した場合はこちらが適用されます。)FALSE
または0
:完全一致(検索値と完全に一致する値を探します。)
基本的には、完全一致でデータを探すことが多いため、「FALSE」を指定することを強くおすすめします。
HLOOKUP関数の使用例:商品価格の検索
それでは、具体的なデータを使ってHLOOKUP関数を使ってみましょう。
データ例
以下の商品別売上データがあるとします。

このデータを使って、「冷蔵庫」の「単価」をHLOOKUP関数で検索してみましょう。
- 検索値:
"冷蔵庫"
(または冷蔵庫と入力されているセル、例:B1
) - 範囲:
B1:E4
(商品名から売上個数までの全データ範囲) - 行番号:
2
(「単価」は範囲の2行目にあるため) - 検索方法:
FALSE
(完全一致で検索)
これらの引数を使って関数を入力すると、次のようになります。
=HLOOKUP("冷蔵庫", B1:E4, 2, FALSE)

または、セル参照を使う場合は、
=HLOOKUP(C1, B1:E4, 2, FALSE) 'C1に"冷蔵庫"が入力されている場合

結果として、「80000」が返されるはずです。

これで、「冷蔵庫」の単価を簡単に検索することができましたね!👍
HLOOKUP関数の実践的な使用例
ここからは、HLOOKUP関数をより実践的に活用する例をいくつかご紹介します。
使用例1:条件に合わせて複数の情報を検索する
先ほどのデータを使って、
今度は「商品名」を入力すると「単価」と「在庫数」が自動で表示されるようにしてみましょう。
データ例
先ほどと同じデータを使います。

検索用の入力欄と表示欄

I2(単価)に入力するHLOOKUP関数
=HLOOKUP(I1, $B$1:$E$4, 2, FALSE)
- 検索値:
I1
(入力された商品名) - 範囲:
$B$1:$E$4
(商品名から売上個数までのデータ範囲。関数をコピーしてもずれないように絶対参照にします。) - 行番号:
2
(単価は2行目) - 検索方法:
FALSE

I3(在庫数)に入力するHLOOKUP関数
=HLOOKUP(I1, $B$1:$E$4, 3, FALSE)
- 検索値:I1(入力された商品名)
- 範囲:
$B$1:$E$4
(商品名から売上個数までのデータ範囲。絶対参照にします。) - 行番号:
3
(在庫数は3行目) - 検索方法:
FALSE


これで、I1に「洗濯機」と入力すると、I2に「60000」、I3
に「70」が自動で表示されるようになります。
便利な機能ですよね!
使用例2:HLOOKUP関数とCOLUMN関数を組み合わせる

さっきの例で、行番号を毎回手で入力するのは少し手間だと感じたよ。

取得したい情報が多い場合は、関数をコピーするたびに行番号を修正する必要があるよね。そんな時に便利なのが、COLUMN関数(列番号を返す関数)と組み合わせる方法があるよ。

そんな方法があるのか!
教えてほしい!
HLOOKUP関数では「行番号」を指定しますが、実はROW関数(行番号を返す関数)と組み合わせることで、関数を右にコピーするだけで取得したい情報が自動的に変わるようにできます。
COLUMN関数とHLOOKUP関数を組み合わせた例 (ここではあえてCOLUMN関数ではなくROW関数を使います。HLOOKUP関数は「行番号」を指定するため、ROW関数を使います。)
例えば、B9
セルに以下の関数を入力します。
=HLOOKUP($I$1,$B$1:$E$4,ROW(A2),FALSE)
- 検索値:
$I$1
(入力された商品名。列方向には固定したいので列の絶対参照にします。) - 範囲:
$B$1:$E$4
(商品名から売上個数までのデータ範囲。絶対参照にします。) - 行番号:
ROW(A2)
ROW(A2)
は「2」を返します。これが「単価」の行番号になります。- この式を
B10
にコピーすると、ROW(A3)
となり「3」が返され、「在庫数」の行番号になります。
- 検索方法:
FALSE
このようにROW(A2)
のように指定することで、関数を下にコピーした時に自動的に行番号が変化し、複数の情報を効率的に取得できるようになります。

HLOOKUP関数を使う上での注意点
HLOOKUP関数は非常に便利ですが、いくつか注意しておくべき点があります。
検索値は必ず「範囲」の1行目に!
HLOOKUP関数は、指定した「範囲」の1行目から検索値を探します。
もし検索値が1行目以外にある場合、正しく検索できません。

必ず検索したい値が1行目にあることを確認してください。
完全一致は「FALSE」を指定する
「検索方法」の引数でFALSE
(完全一致)を指定しないと、データが完全に一致しなくても近似値で結果が返ってくることがあります。

意図しない結果を避けるためにも、特別な理由がない限り「FALSE
」を指定するようにしましょう。
複数の同じ検索値がある場合
もし「範囲」の1行目に同じ検索値が複数存在する場合、HLOOKUP関数は一番左(最初)に見つかった検索値に対応するデータを返します。右側にある同じ検索値のデータは無視されますので、注意が必要です。

重複するデータがある場合は、事前に整理しておくか、別の方法を検討しましょう!
#N/Aエラーが表示される場合
HLOOKUP関数を使用すると、「#N/A」というエラーが表示されることがあります。
これは、以下のような場合に発生します。
- 検索値が「範囲」の1行目に見つからなかった場合
- 検索値の入力ミス、誤字脱字がある場合
- 検索値のデータ型が異なる場合(例:数値として入力されているのに文字列として検索しているなど)
- 範囲の指定が間違っている場合

このようなエラーが出た場合は、上記の点を確認してみてください。
特に、全角・半角の違いや、余計なスペースが入っていないかなどをチェックしてみましょう。
検索範囲は絶対参照に!
関数を他のセルにコピーして使う場合、検索範囲(table_array
)を絶対参照(例:$A$1:$E$5
)で指定しないと、参照する範囲がずれてしまい、正しい結果が得られないことがあります。

F4
キーを押すことで簡単に絶対参照に切り替えることが出来ます!
ぜひ活用してください。
まとめ:HLOOKUP関数を使いこなして業務効率アップ!

この記事では、ExcelのHLOOKUP関数の基本的な使い方から、VLOOKUP関数との違い、具体的な使用例、そして使う上での注意点までを詳しく解説しました。
HLOOKUP関数は、横方向にデータが配置されている表から必要な情報を効率的に検索・抽出できる、とても便利な関数です。
VLOOKUP関数と合わせて使いこなせるようになれば、データ処理の幅が広がり、日々の業務効率が格段にアップするはずです。
最初は少し難しく感じるかもしれませんが、実際に手を動かして様々なデータで試してみることで、すぐに慣れることができますよ。ぜひ、この記事を参考にHLOOKUP関数をマスターして、あなたのExcelスキルをさらに向上させてください!

みんなで頑張ろう!
コメント