楽天リーベイツで楽天ポイント還元最大20%!今なら登録して初回購入で500ポイントもGET!

エクセル【HLOOKUP関数】の使い方を徹底解説!エラーを表示しない方法

8 min 6,688 views
エクセル初心者

エクセル初心者

エクセルのHLOOKUPとはどんな関数?使い方が難しいからすぐエラーが起こって困ってるんだよね・・・。

なるほど!たしかにHLOOKUPはエラーでつまづきやすい関数だよね。[引数]の設定方法が一番のポイントになるよ。

Dr.オフィス

Dr.オフィス

この記事ではHLOOKUP関数の使い方について、実際のエクセル画面を使いながらていねいに解説します。

基本の使い方だけでなく「#N/A」などのエラーを回避する方法、応用的な機能、そしてVLOOKUP関数との違いについても解説します。

HLOOKUP関数がどういう場面で活用できるのかを具体的なイメージで理解できるので、ぜひ参考にしてください。

エクセルのHLOOKUP関数を使いこなす3つのポイント
  1. HLOOKUP関数は【横方向】に検索する機能がある
  2. [引数]がHLOOKUP関数でのエラー回避のポイント
  3. すこし応用すればランク判定やクロス抽出も可能

HLOOKUP関数ならエクセル使用歴20年の私にまかせて!すこしマイナーだけど使いこなせばとても機能的な関数だよ。

Dr.オフィス

Dr.オフィス

HLOOKUP関数には日々の作業に欠かせない検索機能があります。

さらに完全一致だけでなく「~未満の」など範囲を特定する機能もあり、幅広い作業に対応が可能な関数です。

この記事でHLOOKUPの使い方についてマスターし、作業の効率をアップしましょう!

※本記事は『OS:Windows11』画像は『Excelのバージョン:MicrosoftOffice2021』を使用しています。

エクセルのHLOOKUP関数とは【横方向】の検索機能

HLOOKUPとはエイチルックアップと読みます。

「H」は「Horizontal」の頭文字で「水平方向の」という意味を持ちます。

つまりHLOOKUPとはデータを横方向に検索する機能を持つ関数です。

[引数]は4つあり、後ほどそれぞれについて詳しく解説します。

HLOOKUPとVLOOKUPの違いは【検索の方向】

HLOOKUP関数と似ている名前の関数にVLOOKUP関数がありますが、こちらは「垂直方向」に検索する機能があります。

そのためVLOOKUP関数は縦に長いデータを検索するのに最適です。

VLOOKUPとHLOOKUPの違いは、データを縦横どちらの方向に検索するかということになります。

HLOOKUPを使う場面は横長の表からデータを取り出すとき

HLOOKUP関数は横長の形式のデータ表を検索するのに向いています。

例えば次のような場面で便利に使うことができます。

製品番号をキーにして製品一覧を検索し、対応する製品名や単価のデータを取得したい

請求書を作成するときに、別シートの製品一覧を検索してデータを自動表示したい

HLOOKUP関数の基本の使い方!引数もわかりやすく解説

それではHLOOKUP関数の使い方について、基本と注意点を実際のデータを使って順番に解説します。

HLOOKUPの基本の使い方

最初に基本の使い方について、こちらの請求書フォーマットを例に解説します。

C列「製品番号」を検索キーにしてD列「製品名」、F列「単価」を自動表示させるために、右上の「製品一覧」からHLOOKUP関数を使ってデータを取得しています。

  1. STEP

    検索する一覧表を作成する

    最初に検索で参照する一覧表データを作成し、請求書の右上に配置しておきます。

    今回は「製品番号」「製品名」「単価」を一覧にした「製品一覧」を参照します。

    この例では一覧表を同じシート内に作成したけど、別シートに配置することもできるよ。後ほど≫別シートのデータ範囲をHLOOKUP関数で参照する方法で解説するね!

    Dr.オフィス

    Dr.オフィス

    HLOOKUP関数では英字の大文字/小文字は区別されません。
    一覧表に「B-001」「b-001」の両方があった場合、HLOOKUP関数の検索では同じものと判定されますので注意してください。

  2. STEP

    HLOOKUP関数を入力したいセルをクリックする

    次に、HLOOKUP関数で自動表示させたいD13セルをクリックします。

  3. STEP


    HLOOKUP関数を入力する

    「=HLOOKUP(・・・」と直接入力してもよいですが、[関数の入力]や[関数ライブラリ]の機能を使うとミスなく簡単に関数の入力ができます。

    [関数の入力]を使う方法

    1. [数式]タブをクリック
    2. [関数の挿入]を押す
    3. [関数の分類]プルダウンから[検索/行列]を選択
    4. HLOOKUPを選ぶ
    5. [OK]をクリック

    [関数ライブラリ]を使う方法

    1. [数式]タブをクリック
    2. [関数ライブラリ]グループから[検索/行列]を押す
    3. HLOOKUPを選択
  4. STEP

    引数[検索値]の入力

    [関数の引数]ダイアログボックスが出現しました。ひとつずつ引数の枠内に入力していきます。

    1つめの引数[検索値]には検索時にキーとして参照するセルを指定します。

    この例では「製品番号」項目をキーとするためC13セルを指定しました。

    1. 引数[検索値]の枠をクリック
    2. C13セルをクリック
  5. STEP

    引数[検索値]を複合参照に直す

    引数[検索値]に入力したセル番号を複合参照に直しておきます。

    F4キーを3回押すと入力した[検索値]が「C13」→「$C13」と変更されます。

    複合参照にしておくことで、このあと完成した関数を他の列にコピーしたとき、参照先のセルがずれることなくC列に固定されます。

  6. STEP

    引数[範囲]の入力

    2つめの引数[範囲]にはHLOOKUP関数で参照するデータ範囲を指定してください。

    HLOOKUP関数はここで指定されたセル範囲の【上端の行】を検索します。

    この[範囲]では一覧表の【左端の列】は含めても含めなくてもどちらでもよいです。

    1. 引数[範囲]の枠をクリック
    2. J3からO5のセル範囲をドラッグして選択
  7. STEP

    引数[範囲]を絶対参照に直す

    この引数[範囲]のセル範囲も絶対参照で固定しておきます。

    F4キーを1回押して「J3:O5」→「$J$3:$O$5」に直してください。

  8. STEP

    引数[行番号]の入力

    3つめの引数[行番号]とは、HLOOKUP関数で取得したい項目が[範囲]の【何行目にあたるか】を示しています。

    この例で取得したい項目「製品名」は「製品一覧」の2行目にあたるため、引数[行番号]は「2」と指定します。

    1. 引数[行番号]の枠をクリック
    2. 「何行目にあたるか」の数字をキーボードで直接入力
  9. STEP

    引数[検索方法]の入力

    最後の引数[検索方法]はTRUE/FALSEのいずれかを指定します。

    入力を省略するとTRUEを選択したとみなされます。

    FALSEは検索値と完全一致する値のみを検索し、TRUEを指定すると近似値を含めて検索されます。

    今回のケースは「製品番号」と完全一致する文字列のみを検索したいので、「FALSE」とキーボードで直接入力してください。

    引数[検索方法]の入力が終わったら、最後に[OK]を押しましょう。

    1. 引数[検索方法]の枠をクリックし「FALSE」と入力
    2. 「OK」を押す

    TRUEを指定すると「~未満」の検索ができるので、ランク判断などにとても便利だよ!後ほど≫HLOOKUPで【ランク判定】しよう![検索方法:TRUE]で詳しく解説するね。

    Dr.オフィス

    Dr.オフィス

  10. STEP

    入力したセルをオートフィルで下にコピー

    HLOOKUP関数を入力したD13セルに製品名「モニターA」が自動的に表示されました。

    入力した関数を下の行にもオートフィルでコピーしてください。

    1. HLOOKUP関数を入力したD13セルをクリックする
    2. D13セル右下隅にある四角形にマウスポインターを合わせる
    3. ポインターが「+」の形に変わったら下にドラッグする
  11. STEP

    入力したセルを他の列にもコピー

    F列「単価」にもHLOOKUP関数をコピーすれば自動的に表示されるようになり、請求書の完成です。

    1. HLOOKUP関数を入力したD13セルをコピー
    2. F13セルに貼り付け
    3. 3つめの引数[行番号]を数式バーで「3」に修正
    4. 入力したセルをオートフィルで下にコピー

    ここで参照先のセルがズレてしまう場合は、STEP5やSTEP7でセル範囲を複合参照絶対参照に直していないことが原因だよ。

    Dr.オフィス

    Dr.オフィス

別シートのデータ範囲をHLOOKUP関数で参照する方法

HLOOKUP関数は別シートのセル範囲を参照することも可能です。

  1. STEP

    HLOOKUP関数を入力する

    HLOOKUP関数を入力したいセルをクリックし、[関数の入力]や[関数ライブラリ]を使ってHLOOKUP関数を入力します。

  2. STEP

    引数[範囲]に別シートを指定する

    2つ目の引数[範囲]を指定する際に参照シートを指定します。

    1. 引数[範囲]の枠をクリック
    2. 「参照シート」のシートタブ部分をクリック
  3. STEP

    シート名の後にセル範囲を指定する

    引数[範囲]の枠の先頭に「参照シート!」とシート名が表示されました。

    この後に続けてセル範囲を指定してください。

    1. 引数[範囲]枠の「参照シート!」の後ろをクリックする
    2. A3からF5のセル範囲をドラッグして指定する
  4. STEP

    セル範囲の部分をもう一度マウスで選択する

    先ほど引数[範囲]に設定したセル範囲を絶対参照に直したいのですが、そのままF4キーを押しても範囲全体は修正されません。

    まずは引数[範囲]枠の中のセル範囲「A3:F5」の部分を、もう一度マウスでドラッグして選択してください。

  5. STEP

    選択したセル範囲を絶対参照に直す

    セル範囲をマウスで選択した状態でF4キーを1回押すと「A3:F5」→「$A$3:$F$5」と絶対参照に変わります。

    これでHLOOKUP関数で別シートを参照することができるようになりました。

参照する一覧表を別シートに配置しておけば、エクセルの画面がすっきりするね!

Dr.オフィス

Dr.オフィス

ここを間違えるとエラー!HLOOKUP[範囲]注意点

HLOOKUP関数では2つめの引数[範囲]の指定でエラーを起こしがちです。

エラーの原因としてはおもに以下の3つのポイントが挙げられます。

  • 検索する一覧表が2段に分かれてしまっている
  • 検索行より上の行のデータを取得しようとしている
  • 検索範囲に同じ値が2つある

それぞれについて、ひとつずつ解説します。

HLOOKUP関数は2段に分かれた一覧表を検索することはできない

HLOOKUP関数はデータを【横方向】に検索するため、一覧表は横に長い表にしておく必要があります。

一覧表が横に長くなりすぎたからといって2段に分割してしまうと、データ全体を検索することができなくなります。

データの多い表を検索したい場合は、横ではなく縦に長い形式の一覧表を作成しVLOOKUP関数で検索する方法が最適です。

検索行より上の行のデータは取得できない

HLOOKUP関数はセル範囲の【上端行】を参照することになっています。

つまり、キーとなる値の検索は一覧表のいちばん上の行でしか行えないということです。

この例のように検索したい行を一覧表の2行目以下にしてしまうと、検索はうまくおこなわれずエラー「#N/A」が表示されてしまいます。

検索したい項目が上端行にくる形式で一覧表を作成してください。

検索範囲に同じ値が2つあると左の値が返される

HLOOKUP関数で参照した範囲に同じ値が2つある場合、近い方のセル、つまり左の値が返されます。

上の例では赤文字で示した「A-001」がB2セルとF2セルに2つあるため、E8セルのHLOOKUP関数では左にある方のB3セル「モニターA」が返されています。

上の例の青文字の箇所にも注目!「B-001」「b-001」が同じ文字列とみなされて、E11セルは本来「プロジェクター」なのに、二つのうち左側にある「コーダー」が返されてしまっているね。≫HLOOKUPの基本の使い方のSTEP1「英字の大文字/小文字は区別されない」を思い出してね。

Dr.オフィス

Dr.オフィス

HLOOKUP関数でエラーや「0」を非表示にするひと手間

以上のいくつかのポイントを踏まえても、HLOOKUP関数でエラーが出てしまう場合があります。

たとえば一致する検索値が存在しない場合や、参照先のセルが空白であるケースなどです。

エラー「#N/A」や「0」を表示したくないときは、IFELLOR関数を組み合わせるひと手間が有効です。

HLOOKUP応用技!組み合わせでランク判定やクロス抽出も

それでは、ここからはHLOOKUP関数の応用技についての紹介です。

少しの工夫や他の関数との組み合わせによって、HLOOKUP関数はさらに高度な機能を発揮します。

ぜひ最後まで読んでマスターして仕事の幅をぐっと広げましょう!

HLOOKUPで【ランク判定】しよう![検索方法:TRUE]

基本の使い方に、HLOOKUP関数の引数[検索方法]にTRUEを指定すると、近似値を含めて検索することができるという説明があります。

HLOOKUP関数のこの機能を利用して、テスト点数から学生の成績をランク付けしてみましょう。

HLOOKUP関数の引数[検索方法]でTRUEを選択すると、完全一致の値が見つからない場合は近似値が返されます。

HLOOKUP関数での「近似値」とは検索値未満の最大値です。

7行目のアイカワロクロウさんの点数70点は、一覧表の検索範囲の上端行に完全一致する値が存在しません。

そのため70点未満の最大値を探して「0」を見つけ、それに対応するランク「不可」を表示しました。

同じように9行目のウリュウタケオさんは94点未満の最大値である90点に対応するランク「B」、10行目のエザキカナコさんは96点未満の最大値である95点に対応するランク「A」と判定されているね。

Dr.オフィス

Dr.オフィス

HLOOKUP関数を[検索方法:TRUE]で利用するためには一覧表を【左から昇順】に並べておく必要があります。
降順やバラバラに並んでいる場合にはエラーが起こるので注意してください。

クロス抽出ならHLOOKUPでも複数条件の検索が可能

HLOOKUP関数で検索できるキーは1つ目の引数[検索値]のみであり、「製品番号:C-001かつCグレード」などの複数条件での検索はできません。

しかし、MATCH関数と組み合わせることでHLOOKUP関数でもクロス抽出が可能になります。

クロス抽出とは「〇〇行と△△列が交わるセルの値を抽出する」方法です。

HLOOKUP関数で[列]を返し、MATCH関数で[行]を返し、その行番号と列番号が交わるセルの値を取得します。

HLOOKUP関数の使い方に関するQ&A

Q

HLOOKUPで参照するリストが横に長すぎるので、縦に2段に分けてもいいですか?

A

2段に分かれた一覧表を検索することはできません。データの多い表を検索したい場合は、縦に長い一覧表を作成しVLOOKUP関数で検索することをおすすめいたします。くわしくは、≫ここを間違えるとエラー!HLOOKUP[範囲]注意点を参考にしてください。

Q

HLOOKUP関数の結果でエラーが出てしまいます・・・。

A

引数の型が適切であるか、などを疑いましょう。くわしくは、≫ここを間違えるとエラー!HLOOKUP[範囲]注意点を参考にしてください。

エクセルのHLOOKUP関数のエラーを防いで便利に活用しよう

エクセルのHLOOKUPはデータ範囲を【横方向】に検索する関数で、製品番号などのコードをキーにして一覧表からデータを取得する作業などに最適です。

HLOOKUP関数の書式そのものはシンプルですが、[引数]の指定にはいくつかのポイントや注意点があり、その点をクリアしないとエラーの出やすい関数でもあります。

最後にもう一度HLOOKUP関数を使いこなすポイントをおさらいしておきましょう。

おさらい
  • HLOOKUP関数は【横方向】に検索する機能がある
  • [引数]がHLOOKUP関数でのエラー回避のポイント
  • すこし応用すればランク判定やクロス抽出も可能

HLOOKUPは検索によるデータ抽出だけでなく近似値を利用したランク付けなど、非常に広範囲の作業に活用できる機能を持つ関数です。使い方のポイントを押さえてエラーを防ぎ、さらに作業効率をアップさせましょう!

他にも請求書作成の便利技が満載!こちら≫VLOOKUP関数で別シートから参照!エクセルで請求書を作成しよう!もぜひ参考にしてください。

関連記事