ADVERTISEMENT

【Googleスプレッドシート】HLOOKUP関数で横方向の検索!行ヘッダーから値を引く

【Googleスプレッドシート】HLOOKUP関数で横方向の検索!行ヘッダーから値を引く
🛡️ 超解決

表の項目が縦ではなく横に並んでいる場合、目的の値を検索するのに苦労したことはありませんか。Googleスプレッドシートには、横方向の表で検索を行うHLOOKUP関数が用意されています。この関数を使えば、行ヘッダーをキーにして、指定した行から値を簡単に取得できます。この記事では、HLOOKUP関数の基本的な使い方から応用、注意点までをわかりやすく解説します。これであなたも横方向の検索を自在に操れるようになります。

【要点】HLOOKUP関数で横方向検索をマスターするポイント

  • =HLOOKUP(検索値, 範囲, 行インデックス, 検索方法): 横方向の表で行ヘッダーを検索し、指定した行の値を返します。基本構文を覚えればすぐに使えます。
  • 第4引数FALSEで完全一致検索: データの重複や誤検索を防ぐためにFALSEを指定します。TRUEは近似一致で、並び替えが必要です。
  • 範囲の指定は絶対参照が便利: 数式をコピーする際に範囲がずれないよう、$記号で固定することをおすすめします。

ADVERTISEMENT

HLOOKUP関数とは?横方向検索の仕組み

HLOOKUP関数は、表の最上行(ヘッダー行)から指定した値を検索し、その値が含まれる列から指定した行のデータを取得する関数です。名前の「H」はHorizontal(水平)を意味し、VLOOKUPの縦方向検索に対する横方向版です。基本的な構文は=HLOOKUP(検索値, 範囲, 行インデックス, 検索方法)となります。第1引数に検索したい値を指定し、第2引数に検索範囲(最上行を含む)、第3引数に取得したいデータが何行目にあるか(最上行を1として数える)、第4引数にFALSE(完全一致)またはTRUE(近似一致)を指定します。この関数を使うことで、月ごとの売上表や年度別データなど、横に展開された表から必要な情報を素早く取り出せます。例えば、商品名が行方向に並び、各列に月別の売上がある表で、特定商品の特定月の売上を取得するのに適しています。

HLOOKUP関数の基本的な使い方

ここでは、商品の月別売上表から特定の商品の売上を検索する例を使って、HLOOKUP関数の入力手順を説明します。以下の表を想定してください。

例として、最上行に商品名(A, B, C)が横に並び、その下に1月から6月までの売上データが縦に並んでいる表を考えます。商品「B」の3月の売上を取得したい場合を例にします。

  1. 検索範囲を確認する
    まず、検索したい範囲を決めます。この例では、最上行に商品名(A1:C1)、データがA2:C7(1月~6月)とします。範囲はA1:C7です。
  2. HLOOKUP関数を入力するセルを選ぶ
    結果を表示したいセル(例: E2)をクリックします。
  3. 数式を入力する
    =HLOOKUP(“B”, A1:C7, 4, FALSE) と入力します。検索値は”B”(文字列)、範囲はA1:C7、行インデックスは4(1月を1行目とすると、3月は4行目)、検索方法はFALSEで完全一致を指定します。
  4. Enterキーで確定する
    Enterキーを押すと、商品Bの3月の売上値が表示されます。

この例では、行インデックスが4になっていることに注意してください。最上行(商品名)が1行目、その下の1月データが2行目、2月が3行目、3月が4行目となるからです。もし6月のデータを取得する場合は行インデックスに7を指定します。

もう一つの例として、検索値が数値の場合を紹介します。例えば、商品コード(1001, 1002…)が最上行にあり、その下に価格データが並んでいる表で、商品コード1002の価格を取得するには、=HLOOKUP(1002, A1:C10, 2, FALSE) のように入力します。数値は引用符で囲む必要はありません。

HLOOKUP関数使用時の注意点とよくある失敗

検索値が最上行に存在しないとエラーになる

HLOOKUPは必ず範囲の最上行(第2引数の範囲の最初の行)を検索します。検索値がその行にない場合、#N/Aエラーが発生します。例えば、商品名が「D」であるのに範囲に「D」が含まれていない場合です。この場合は、検索値のスペルミスや範囲設定を確認しましょう。

行インデックスが範囲の行数を超えるとエラーになる

行インデックスは、範囲内の行番号を指定します。範囲がA1:C7の場合、行インデックスに8以上を指定すると#REF!エラーになります。範囲内のデータ行数を正確に数えて設定してください。

完全一致と近似一致の使い分けを間違える

第4引数にTRUEを指定すると近似一致になりますが、この場合、最上行が昇順に並び替えられている必要があります。並び替えられていないと、誤った値が返されることがあります。特に、文字列や日付の検索ではFALSE(完全一致)を推奨します。また、近似一致は数値の範囲検索にも使えますが、その場合は最上行を昇順に並べる必要があります。

範囲に空セルが含まれる場合の挙動

検索対象の最上行に空セルがあると、そのセルは無視されずに空文字として扱われます。空文字は他の値と一致しないため、#N/Aエラーになるか、意図しない結果を招きます。範囲内の最上行にはデータがすべて入力されていることを確認してください。

数式をコピーするときの範囲のずれ

HLOOKUPの数式を他のセルにコピーすると、範囲の参照が相対的にずれてしまいます。そのため、範囲は絶対参照($A$1:$C$7など)で固定することをおすすめします。例えば、=HLOOKUP(“B”, $A$1:$C$7, 4, FALSE) とすることで、コピーしても範囲がずれません。

ADVERTISEMENT

VLOOKUPとの比較

機能 VLOOKUP HLOOKUP
検索方向 縦方向(列) 横方向(行)
検索対象 範囲の最初の列 範囲の最初の行
戻り値の指定 列番号(範囲の左から何列目か) 行番号(範囲の上から何行目か)
主な用途 社員IDから氏名を探すなど、縦長の表 月ごとのデータから特定月の値を取得するなど、横長の表

VLOOKUPとHLOOKUPは検索方向が異なるだけで、基本的な考え方は同じです。表の形状に応じて使い分けてください。また、Googleスプレッドシートでは、より柔軟なXLOOKUP関数も使えますが、互換性の点でHLOOKUPも依然として有用です。

この記事では、HLOOKUP関数を使って横方向の表からデータを検索する方法を解説しました。基本構文を覚えれば、行ヘッダーをキーにした柔軟なデータ取得が可能です。特に、第4引数にFALSEを指定して完全一致検索を行うことで、誤検索を防げます。また、VLOOKUPとの違いを理解することで、表の形状に応じて適切な関数を選べるようになります。次は、実際の業務データでHLOOKUPを試してみてください。エラーが出た場合は、検索値の有無や行インデックスの数値を再確認しましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。