【Excel】HLOOKUP関数を利用した横方向のデータ検索方法

この記事は約5分で読めます。

今回は、ExcelのHLOOKUP関数を使用して横方向に並んだデータから目的の値を検索する方法について紹介します。

HLOOKUP関数の基本的な仕組み

Excelでデータを検索する際、縦方向に並んだリストから探す場合はVLOOKUP関数がよく用いられますが、横方向(行方向)に並んだデータから検索したい場面ではHLOOKUP関数が適しています。
HLOOKUPは「Horizontal
Lookup」の略であり、指定した範囲の最上行を横向きに検索し、一致する値を見つけた列の中から、指定した行数だけ下にあるセルの値を抽出する働きを持っています。
たとえば、月ごとの売上推移が横に展開されている表や、社員ごとの評価基準が横並びにまとめられているフォーマットなどで役立ちます。
VLOOKUP関数と構文の作り方はほぼ同じであるため、検索の方向が縦から横に変わっただけと捉えると理解しやすくなります。

関数の構文と引数

HLOOKUP関数は、以下のように4つの引数を指定して構成されます。
=HLOOKUP(検索値, 範囲, 行番号, 検索方法)

  • 検索値: 探したい基準となる値や、その値が入っているセルを指定します。
  • 範囲: 検索の対象となるデータ全体を選択します。このとき、最上行には検索値が含まれている必要があります。
  • 行番号:
    選択した範囲の最上行を1行目としたときに、抽出したいデータが上から何行目にあるかを数値で指定します。
  • 検索方法:
    完全一致のデータを探す場合は「FALSE(または0)」、近似値を探す場合は「TRUE(または1)」を指定します。実務では正確な一致を求めることが多いため、基本的には「FALSE」を用います。

HLOOKUP関数を活用する具体的な場面

表の構造によっては、VLOOKUP関数よりもHLOOKUP関数を使う方が自然なケースが存在します。
データを横向きに蓄積していくようなシートの設計になっている場合、無理にVLOOKUP関数に合わせて表の縦横を入れ替えるよりも、HLOOKUP関数をそのまま利用した方が手間が省けます。

月別の実績データからの抽出

横軸に1月から12月までの月が並び、縦軸に商品名や店舗名が並んでいるような売上管理表を想像してみてください。
このような表において、「特定の月の全店舗の合計売上」だけを別シートにピックアップしたい場合、HLOOKUP関数が力を発揮します。
検索値に調べたい「月」を指定し、データ範囲を選択した上で、合計値が入力されている行番号を指定することで、月を変更するだけで必要な数値が自動的に切り替わる仕組みを作れます。

成績や評価テーブルとの照合

テストの点数に応じて「A」「B」「C」といった評価をつける場合、評価基準のテーブルを横並びに作成しておく手法があります。
例えば、最上行に「0点、50点、80点」、2行目に「C、B、A」と設定されたテーブルを用意します。
この場合、引数の「検索方法」をTRUE(近似値)に設定することで、学生の点数がどの評価ゾーンに該当するかを判定し、自動的にアルファベットの評価を返すことができます。
近似値検索を利用する際は、基準となる最上行の数値を昇順に並べておくことが機能させるための前提となります。

HLOOKUP関数を使用する際のエラー対策とコツ

関数を組み立てる中で、意図した結果が得られずにエラーが表示されることがあります。
よくあるエラーの原因とその対処法を知っておくことで、スムーズに作業を進められます。

#N/Aエラーが表示される原因

最も頻繁に目にするのが「#N/A」というエラー表示です。
これは「Not Available(該当なし)」を意味し、指定した検索値が検索範囲の最上行に見つからなかった場合に発生します。
このエラーが出たときは、検索値と検索範囲のデータに表記の揺れがないかを確認することが解決の糸口となります。
たとえば、検索値は半角スペースが含まれているのに、検索範囲側は全角スペースになっているだけで、Excelは異なるデータと認識してしまいます。
また、セルの中に目に見えない余分なスペースが紛れ込んでいるケースも多いため、そのような場合はTRIM関数などを併用してスペースを取り除く工夫が役立ちます。

行の追加による参照のズレを防ぐ

HLOOKUP関数では「上から何行目か」を数値で直接指定するため、関数の設定後に表の途中に新しい行を挿入すると、目的のデータがある行番号がずれてしまい、間違った値が抽出されるリスクがあります。
このような事態を防ぐための実践的なテクニックとして、MATCH関数を組み合わせて行番号を動的に取得する方法があります。
行番号の引数部分にMATCH関数を入れ込み、行の見出し項目を検索させることで、行が追加されたり削除されたりしても、常に見出しの名前に一致する正しい行番号をExcelが自動で計算してくれるようになります。
これにより、メンテナンスに強い柔軟なシートを構築できます。

VLOOKUPやXLOOKUP関数との使い分け

Excelの検索関数にはいくつかの種類があり、データ構造や利用環境に応じて適切なものを選択することが求められます。

VLOOKUP関数との関係

検索の方向が縦か横かの違いであるため、VLOOKUPとHLOOKUPは兄弟のような関係にあります。
Excelの機能には「行列を入れ替えて貼り付け」という便利な操作があるため、横向きの表を縦向きに変換してVLOOKUPを使うことも可能です。
どちらの関数を使うかは、元のデータのフォーマットをそのまま活かしたいかどうかに依存します。

最新関数XLOOKUPでの代替

比較的新しいバージョンのExcelを利用している環境であれば、XLOOKUP関数を使用するという選択肢も考えられます。
XLOOKUP関数は縦方向と横方向のどちらの検索にも対応しており、検索範囲と戻り値の範囲を別々に指定できるため、行の追加によるズレを気にしなくてよいという利点があります。
ただし、旧バージョンのExcelを使用している関係者とファイルを共有する場面では、XLOOKUP関数が機能せずエラーになってしまう可能性があります。
そのような共有の観点からは、古くから存在し互換性の高いHLOOKUP関数を活用するスキルを持っておくことには十分な価値があります。

まとめ

ExcelのHLOOKUP関数を使って、横方向に並んだ表から目的のデータを効率的に検索・抽出する方法について紹介しました。
縦方向の検索に使われるVLOOKUP関数と同じ引数の構造を持っているため、検索の方向が横に変わるという特性を理解するだけで、応用の幅が広がります。
月ごとの推移表や横並びの評価基準など、既存のフォーマットの形を崩さずに必要なデータを拾い上げたい場面で、この関数は有効に働きます。
エラーが発生した際の表記揺れのチェックや、行の追加によるズレを防ぐためのMATCH関数との組み合わせなど、ちょっとしたコツを押さえておくことで、関数の信頼性が高まります。
縦向きの表だけでなく横向きの表に対しても柔軟にアプローチできるよう、HLOOKUP関数の使い方をマスターしてみてはいかがでしょうか。