Excel関数 逆引き集 | 横方向に検索 → HLOOKUP

Excel VBA Excel
スポンサーリンク

概要

「横方向に並んだ表から値を探したい」――そんなときに使うのが HLOOKUP(Horizontal LOOKUP) です。
VLOOKUP が“縦方向”の検索なら、HLOOKUP は“横方向”の検索。
表の 一番上の行で検索し、見つかった列の“下の行”から値を返す のが特徴です。

横に年度が並んでいる売上表、横に科目が並んでいる成績表などで大活躍します。


基本の考え方

HLOOKUP の書式は次のとおりです。

=HLOOKUP(検索値, 範囲, 行番号, 検索の型)
  • 検索値:探したい値(例:年度、科目名など)
  • 範囲:検索する表全体(検索行を含む)
  • 行番号:範囲の上から数えて「何行目を返すか」
  • 検索の型:FALSE(完全一致)を使うのが基本

例:
1行目に年度、2行目に売上が並んでいる表から、E2に入力した年度の売上を取りたい場合:

=HLOOKUP(E2, $A$1:$D$2, 2, FALSE)

基本の使い方(年度・科目などの横方向検索)

年度から売上を引く

表の構造が次のような場合:

  • A1:D1 → 年度(2022, 2023, 2024, 2025)
  • A2:D2 → 売上

E2 に年度を入力し、F2 に売上を表示したいとき:

=HLOOKUP(E2, $A$1:$D$2, 2, FALSE)

意味をかみ砕くと:

  • 「E2 の年度を」
  • 「A1:D1 の横方向から探して」
  • 「見つかった列の 2 行目(売上)を返す」
  • 「完全一致で探す」

科目名から点数を引く

1行目に科目(国語・数学・英語)、2行目に点数がある場合:

=HLOOKUP(G2, $A$1:$C$2, 2, FALSE)

応用の使い方(エラー対策・空欄対策)

見つからないときに「科目なし」などのメッセージを出す

=IFERROR(HLOOKUP(G2, $A$1:$C$2, 2, FALSE), "科目なし")

入力が空欄のときは何も表示しない

=IF(G2="","",IFERROR(HLOOKUP(G2,$A$1:$C$2,2,FALSE),"科目なし"))

よくあるつまずきと対策

1. 検索するのは「範囲の一番上の行」

HLOOKUP は 範囲の1行目 で検索します。
検索したい行が2行目以降にある場合は、範囲をずらして「検索行を一番上に」してください。

2. 行番号は「範囲の上から数える」

範囲が A1:D3 の場合:

  • A1:D1 → 1行目
  • A2:D2 → 2行目
  • A3:D3 → 3行目

という数え方です。

3. 完全一致検索は FALSE を使う

省略すると近似値(TRUE)扱いになり、誤った列を返すことがあります。

=HLOOKUP(E2,$A$1:$D$2,2,FALSE)

4. 文字列と数値の違いに注意

見た目が同じでも、

  • 「2025」(数値)
  • 「2025」(文字列)
    は別物です。

必要に応じて TEXT や VALUE で型を揃えましょう。

5. 列の挿入に強くない

VLOOKUP と同じく、列の追加・削除で範囲がズレることがあります。
頻繁に列をいじる表では XLOOKUP の方が安全です。


例題

問題1: A1:D1 に年度、A2:D2 に売上があるとき、E2 の年度に対応する売上を F2 に表示してください。

=HLOOKUP(E2, $A$1:$D$2, 2, FALSE)

問題2: A1:C1 に科目、A2:C2 に点数があるとき、G2 の科目に対応する点数を H2 に表示してください。

=HLOOKUP(G2, $A$1:$C$2, 2, FALSE)

問題3: G2 の科目が見つからない場合は「科目なし」と表示してください。

=IFERROR(HLOOKUP(G2, $A$1:$C$2, 2, FALSE), "科目なし")

問題4: G2 が空欄のときは空表示、それ以外は点数を表示してください。

=IF(G2="","",IFERROR(HLOOKUP(G2,$A$1:$C$2,2,FALSE),"科目なし"))

問題5: A1:F3 の表で、1行目が検索行、3行目の値を返したい場合の式を I2 に書いてください(検索値は H2)。

=HLOOKUP(H2, $A$1:$F$3, 3, FALSE)

まとめ

HLOOKUP は「横方向の検索」の定番関数で、
上の行で探して、下の行から返す というシンプルな動きです。

ポイントは次の4つ。

  • 検索行は範囲の一番上に置く
  • 行番号は“範囲の上から数える”
  • 完全一致(FALSE)を使う
  • IFERROR でエラー処理をしておく

この型を押さえれば、年度別売上、科目別点数、横方向のマスタ参照などが一瞬で自動化できます。

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