Excelでデータを管理していると、表の横方向にデータを検索したい場面があります。そんなときに便利なのがHLOOKUP関数です。HLOOKUP関数は、指定した行の中から検索したい値を探し、その値に対応する別の行のデータを返します。この記事では、HLOOKUP関数の基本的な使い方から、応用的な使い方まで詳しく解説します。
HLOOKUP関数とは?
HLOOKUP関数は、Excelで指定した範囲の1行目から検索値を探し、その値に対応する行のデータを取得するための関数です。HLOOKUP関数は、表の横方向にデータを検索する場合に役立ちます。縦方向に検索するVLOOKUP関数と似ていますが、HLOOKUPは横方向の検索に特化しています。
HLOOKUP関数の基本的な構文
=HLOOKUP(検索値, 範囲, 行番号, [検索方法])
- 検索値: 検索したい値を指定します。
- 範囲: 検索するデータ範囲を指定します。1行目から指定した範囲で検索が行われます。
- 行番号: 検索値が見つかった列の中で、返したいデータがある行の番号を指定します。検索範囲の1行目を1として数えます。
- [検索方法](省略可): 完全一致の場合は「FALSE」、近似一致の場合は「TRUE」を指定します。省略した場合は「TRUE」(近似一致)になります。
HLOOKUP関数の実際の例
たとえば、次のような表があったとします。
A | B | C | |
商品コード | A101 | A102 | A103 |
商品名 | ペン | ノート | 消しゴム |
価格 | 100円 | 200円 | 50円 |
この表で、商品コード「A102」に対応する商品名を取得するには、次のようにHLOOKUP関数を使用します。
=HLOOKUP(“A102”, A1:C3, 2, FALSE)
この場合、ノートが返されます。商品コード「A102」に対応する商品名が2行目にあるためです。
A | B | C |
A101 | A102 | A103 |
ペン | ノート | 消しゴム |
100円 | 200円 | 50円 |
=HLOOKUP(“A102”, A1
, 2, FALSE) → ノート |
HLOOKUP関数の応用例
価格を検索する
上記の表で商品コード「A103」に対応する価格を取得するには、次のように行番号に「3」を指定します。
=HLOOKUP(“A103”, A1:C3, 3, FALSE)
この場合、50円が返されます。商品コード「A103」に対応する価格が3行目にあるためです。
近似一致での検索
HLOOKUP関数では、近似一致による検索も可能です。次のような点数と成績の対応表がある場合、点数に基づいて成績を検索することができます。
A | B | C | D | E | |
点数 | 0 | 60 | 70 | 80 | 90 |
成績 | F | D | C | B | A |
点数「75」の成績を検索するには、次のように入力します。
=HLOOKUP(75, A1:E2, 2, TRUE)
この場合、Cが返されます(70点以上80点未満が「C」に該当するため)。近似一致は、範囲内で一番近い値を返しますが、検索する範囲は昇順に並んでいる必要があります。
別シートからの検索
HLOOKUP関数を使って、別のシートからデータを検索することもできます。例えば、シート「商品データ」にある商品コードから対応する価格を検索する場合、次のように指定します。
=HLOOKUP(“A101”, ‘商品データ’!A1:C3, 3, FALSE)
これにより、シート「商品データ」から商品コード「A101」に対応する価格を取得できます。
データが見つからない場合の対応
HLOOKUP関数で検索値が見つからない場合、通常は**#N/Aエラー**が表示されます。これを防ぐためには、IFERROR関数を使ってエラーメッセージを処理することができます。例えば、商品コードが見つからなかった場合に「該当なし」と表示するには、次のように入力します。
=IFERROR(HLOOKUP(“A104”, A1:C3, 2, FALSE), “該当なし”)
これにより、検索値が見つからない場合は「該当なし」と表示されます。
複数列からデータを検索
HLOOKUP関数を使って、1行目から検索値を探し、複数行からデータを取得することもできます。たとえば、ある列のデータに対応する複数の項目(例えば、商品名と価格)を同時に取得する場合に便利です。
=HLOOKUP(“A102”, A1:C3, 2, FALSE) // 商品名を取得
=HLOOKUP(“A102”, A1:C3, 3, FALSE) // 価格を取得
HLOOKUP関数の便利な豆知識
VLOOKUP関数との違い
HLOOKUP関数は、データを横方向に検索しますが、VLOOKUP関数は縦方向にデータを検索します。HLOOKUP関数は、データが横に並んでいる表を使って検索したい場合に便利です。VLOOKUPとHLOOKUPは基本的な動作が似ていますが、検索方向が異なるため、適切な場面で使い分けましょう。
行番号の指定に注意
行番号は、検索範囲内で何番目の行から値を取得するかを示します。HLOOKUP関数では、指定した範囲の1行目を1行目と数え、2行目、3行目と続きます。範囲外の行番号を指定すると**#REF!エラー**が発生するため、指定する行番号には注意が必要です。
近似一致の使用場面
近似一致(TRUE)を使用する場合、検索範囲内の値は昇順に並んでいる必要があります。例えば、成績や価格帯など、範囲内で最も近い値を取得する場面で近似一致が便利です。ただし、データが正しく並んでいないと、正しい結果が返されないことがあるので注意が必要です。
IFERROR関数と組み合わせたエラー処理
IFERROR関数を組み合わせることで、HLOOKUP関数がエラーを返した場合にエラーメッセージをカスタマイズできます。これにより、データが存在しない場合でも、見栄えの良い結果を表示することができます。特に大きなデータベースや、不完全なデータを扱う場合に有効です。
HLOOKUP関数のよくあるエラーと対処法
#N/Aエラー
#N/Aエラーは、検索値が範囲内で見つからない場合に発生します。これを防ぐには、検索値が正しく入力されているか、範囲が正しく指定されているかを確認し、見つからない場合の処理をIFERROR関数で指定します。
=IFERROR(HLOOKUP(“A104”, A1:C3, 2, FALSE), “該当なし”)
#REF!エラー
#REF!エラーは、指定した行番号が範囲外の場合に発生します。行番号が指定した範囲内で正しいかを確認しましょう。たとえば、3行しかない範囲に「4」を指定するとエラーが発生します。
#VALUE!エラー
#VALUE!エラーは、範囲や行番号が無効である場合に発生します。例えば、行番号が数値以外で指定されていたり、範囲が正しく指定されていない場合にエラーが発生します。範囲と行番号が正しく設定されているかを確認しましょう。
まとめ
ExcelのHLOOKUP関数は、横方向にデータを検索して対応するデータを取得するための便利なツールです。商品コードや成績など、横方向に並んだデータから必要な情報を効率よく検索できます。VLOOKUP関数とともに、適切な場面で使い分けることで、データ処理をさらに効率化することが可能です。
HLOOKUP関数を使いこなして、Excelでのデータ検索をさらに便利にしましょう!