HLOOKUP関数とは?使い方・エラー対処法・VLOOKUPとの違い

スポンサーリンク

「横方向に並んだデータから値を取り出したいのに、VLOOKUPだとうまくいかない……」そんな経験はありませんか? VLOOKUPは縦方向の検索には強いですが、横方向のデータには対応していません。

そこで活躍するのがHLOOKUP関数です。この記事では、HLOOKUP関数の基本的な使い方から実践的な活用例、よくあるエラーの対処法、そしてVLOOKUP・XLOOKUPとの違いまで、わかりやすく解説していきます。

この記事は次のような人におすすめ

– 横方向に並んだ表からデータを検索・取得したい人
– HLOOKUP関数の引数や使い方を基礎から理解したい人
– VLOOKUPやXLOOKUPとの違い・使い分けを知りたい人

HLOOKUP関数とは?

読み方と語源

読み方は「エイチ ルックアップ」関数です。

HLOOKUPの「H」は「Horizontal(ホリゾンタル)」の頭文字で、「水平・横方向」という意味があります。つまり、横方向にデータを検索する関数ということですね。

ちなみに、よく比較されるVLOOKUP関数の「V」は「Vertical(バーティカル)=垂直・縦方向」を意味しています。名前を覚えるだけで、どちらが縦でどちらが横かがわかるようになりますよ。

HLOOKUP関数でできること

HLOOKUP関数は、指定した範囲の上端行(1行目)で検索値を横方向に探し、見つかった列の指定した行数分だけ下のセルの値を取得する関数です。

たとえば、月別の売上表で「4月」を検索して、その列の3行目にある売上金額を取り出す、といった使い方ができます。

データが横方向(行方向)に並んでいるときに使うのがHLOOKUP、縦方向(列方向)に並んでいるときに使うのがVLOOKUPと覚えておきましょう。

HLOOKUP関数の書き方(構文と引数)

基本構文

まずはHLOOKUP関数の構文を確認しましょう。

構文

=HLOOKUP( 検索値, 範囲, 行番号, [検索の型] )

引数は全部で4つあり、最初の3つは必須、4つ目の「検索の型」は省略できます。

引数の説明

各引数の役割を表で整理しました。

引数必須/省略可説明
検索値必須範囲の上端行から探したい値。文字列・数値・セル参照が使えます
範囲必須検索対象と取得したい値を含むセル範囲。上端行が検索対象になります
行番号必須取得したいデータがある行の番号。上端行を「1」として数えます
検索の型省略可FALSEまたは0で完全一致、TRUEまたは1で近似一致。省略するとTRUEになります

「検索の型」はFALSE(完全一致)を指定するのがおすすめです。 省略するとTRUE(近似一致)になりますが、意図しない結果が返ることがあるため、基本的にはFALSEを明示的に指定しておきましょう。

なお、TRUEを指定する場合は、上端行のデータが昇順に並んでいる必要があります。昇順になっていないと正しい結果が得られないので注意してください。

HLOOKUP関数の基本的な使い方

ここでは、支店別の売上データから特定の支店の値を取り出す例で解説します。

次のような横方向の表があるとします。

 ABCDE
1 東京支店大阪支店名古屋支店福岡支店
2売上500350280200
3経費120806550
4利益380270215150

東京支店の利益(380)を取得するには、次のように入力します。

=HLOOKUP("東京支店", B1:E4, 4, FALSE)

この数式の意味を分解してみましょう。

  • 検索値: “東京支店” — 上端行から「東京支店」を探します
  • 範囲: B1:E4 — B1からE4の範囲を指定しています
  • 行番号: 4 — 上端行から数えて4行目(利益の行)の値を取得します
  • 検索の型: FALSE — 完全一致で検索します

結果として「380」が返ります。行番号を「2」に変えれば売上(500)、「3」に変えれば経費(120)を取得できますよ。

セル参照を使うこともできます。たとえばG1セルに支店名が入力されている場合は、次のように書けます。

=HLOOKUP(G1, B1:E4, 4, FALSE)

こうすると、G1セルの値を変更するだけで、取得する支店のデータを切り替えられます。入力規則のドロップダウンと組み合わせれば、簡易的なダッシュボードにもなりますね。

HLOOKUP関数の実践的な使い方・応用例

月別データから特定月の値を取得する

実務では、月別に横方向に並んだ集計表をよく見かけますよね。こういったデータからHLOOKUP関数で特定の月の値を取り出せます。

たとえば、以下のような月別売上表があるとします。

 ABCDM
1 1月2月3月12月
2売上100120150200
3目標110110140190

3月の売上を取得するには、次のように入力します。

=HLOOKUP("3月", B1:M3, 2, FALSE)

結果は「150」が返ります。行番号を3にすれば、目標値(140)を取得できます。

MATCH関数と組み合わせて行番号を自動化する

行番号をハードコーディングすると、表の構成が変わったときにメンテナンスが大変です。そこでMATCH関数と組み合わせると、取得したい項目名から自動的に行番号を算出できます。

=HLOOKUP("3月", B1:M3, MATCH("目標", A1:A3, 0), FALSE)

この書き方なら、行の順番が入れ替わっても数式を修正する必要がありません。さらに柔軟に2方向の検索を行いたい場合は、INDEX関数とMATCH関数の組み合わせも検討してみてください。

IFNA関数と組み合わせてエラーを回避する

HLOOKUP関数で検索値が見つからないと、#N/Aエラーが表示されてしまいます。これを避けるには、IFNA関数と組み合わせるのが便利です。

=IFNA(HLOOKUP("札幌支店", B1:E4, 4, FALSE), "該当なし")

検索値が見つからなかった場合に「該当なし」と表示されるので、見た目もスッキリしますし、後続の計算でエラーが連鎖するのを防げます。

よくあるエラーと対処法

HLOOKUP関数を使っていると、思わぬエラーに遭遇することがあります。ここではエラーの種類別に原因と対処法を整理しました。

#N/A エラー

#N/Aエラーは「検索値が見つからない」ときに発生します。

原因対処法
検索値が範囲の上端行に存在しない検索値のスペルや値を確認する
検索値や範囲に余分なスペースがあるTRIM関数でスペースを除去する
文字列と数値の型が一致していないVALUE関数で数値に変換、またはTEXT関数で文字列に変換する
全角・半角が混在しているASC関数やJIS関数で表記を統一する

エラーを非表示にしたい場合は、IFNA関数やISNA関数と組み合わせて対処しましょう。

#REF! エラー

#REF!エラーは「行番号が範囲の行数を超えている」ときに発生します。

たとえば、範囲がB1:E3(3行)なのに行番号を「4」と指定するとこのエラーが出ます。指定した範囲の行数を確認して、行番号が範囲内に収まるように修正してください。

#VALUE! エラー

#VALUE!エラーは「行番号に1未満の数値や文字列を指定した」ときに発生します。行番号には必ず1以上の整数を指定しましょう。

VLOOKUP・XLOOKUPとの違いと使い分け

Excelには検索系の関数がいくつかあります。HLOOKUP関数とよく比較される関数との違いを表にまとめました。

比較項目HLOOKUPVLOOKUPXLOOKUP
検索方向横方向(行)縦方向(列)縦横両方向
検索位置上端行のみ左端列のみ任意の範囲
デフォルトの検索型近似一致(TRUE)近似一致(TRUE)完全一致
対応バージョンExcel 2003以降Excel 2003以降Microsoft 365 / Excel 2021以降
見つからない場合の指定不可(IFNAで対応)不可(IFNAで対応)第4引数で指定可
列/行の追加への耐性弱い(番号ズレ)弱い(番号ズレ)強い(範囲参照)

HLOOKUPとVLOOKUPの違い(行方向 vs 列方向)

もっとも混同しやすいのがHLOOKUPとVLOOKUPの違いです。どちらも「表から値を引く」関数ですが、検索する方向がちょうど90度違います。

  • HLOOKUP: 範囲の上端行を横に探し、縦方向(下) に指定した行数分だけ下のセルを返す
  • VLOOKUP: 範囲の左端列を縦に探し、横方向(右) に指定した列数分だけ右のセルを返す

表のレイアウトが縦長(項目名が1列目に並ぶ)ならVLOOKUP、横長(項目名が1行目に並ぶ)ならHLOOKUP、と覚えておけば迷いません。

XLOOKUPへの移行がおすすめ

使い分けのポイントは以下のとおりです。

  • データが横方向に並んでいる → HLOOKUP関数
  • データが縦方向に並んでいるVLOOKUP関数
  • Microsoft 365やExcel 2021以降を使っているXLOOKUP関数がおすすめ

XLOOKUP関数は縦方向・横方向の両方に対応しており、HLOOKUPとVLOOKUPの機能を1つの関数でカバーできます。さらにデフォルトが完全一致、見つからない場合の代替値を第4引数で直接指定できる、列や行を追加しても数式が壊れにくい、といったメリットもあります。

お使いのExcelのバージョンがMicrosoft 365やExcel 2021以降であれば、新規の数式はXLOOKUPで書くことを強くおすすめします。既存のHLOOKUP/VLOOKUPも、メンテナンスの機会に少しずつXLOOKUPへ置き換えていくと、将来的なトラブルを減らせますよ。

ただし、Excel 2019以前のバージョンではXLOOKUPは使えません。職場のパソコンがまだ古いバージョンという方や、取引先とファイルをやり取りする場合は、互換性を考えてHLOOKUP関数をしっかり押さえておくのがおすすめです。

関連する検索・参照系の関数としては、INDEX関数MATCH関数の組み合わせも便利です。XLOOKUPが使えない環境で2方向検索をしたい場合に重宝するので、あわせてチェックしてみてください。

まとめ

HLOOKUP関数は、横方向に並んだデータから値を検索・取得するための関数です。この記事のポイントをおさらいしましょう。

  • HLOOKUPの「H」はHorizontal(水平)の略で、横方向に検索する関数
  • 引数は「検索値・範囲・行番号・検索の型」の4つ。検索の型はFALSEを指定するのが基本
  • 検索値が見つからないときの#N/Aエラーは、IFNA関数と組み合わせて回避できる
  • VLOOKUPとは検索方向が90度違う。表のレイアウトに合わせて使い分ける
  • Microsoft 365やExcel 2021以降であれば、XLOOKUP関数への置き換えがおすすめ

横方向のデータ検索はHLOOKUP関数にお任せです。ぜひ実務で活用してみてくださいね。

関数一覧

biz-tacticsではExcel関数の一覧を3パターンご用意しています。用途に合わせてお使いください。

エラー値についてのまとめ記事

関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。

【Excel】セルに表示されるエラーの種類と原因、対処方法を解説

タイトルとURLをコピーしました