🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのHLOOKUP & LOOKUP — 水平検索と、引退させるべきレガシー関数

|

ExcelのHLOOKUP & LOOKUP — 水平検索と、引退させるべきレガシー関数

要点HLOOKUPVLOOKUP を横倒しに したもの:最初の行を左から右へ探し、そのの行から値を返します——データが 縦ではなく横方向に走っているときに使います。第4引数の規則も同じ:完全一致には FALSE を渡します。LOOKUP は両者の祖父で、1つの致命的な制限があります—— 完全一致オプションがまったくない常に近似一致をし、検索範囲が昇順に ソートされていることを要求します。だからこそ、それは静かに間違った答えを返し、 だからこそ、ほぼ常に置き換えるべきなのです。両者ともすべてのバージョンで動作します; XLOOKUP は水平と垂直を1つの関数で扱います。

=HLOOKUP("Mar", A1:M4, 3, FALSE)     ' 1行目で"Mar"を探し、3行目を返す、完全一致
=LOOKUP(F2, A2:A500, C2:C500)        ' レガシー:近似のみ、Aはソート必須

VLOOKUP と INDEX/MATCH が検索の大多数をカバー します。HLOOKUPLOOKUP は、一族に残る2つの枝です——一方はときどき必要になり、 もう一方はほとんど見分けて引退させるべきものです。両者とも、ゼロから学ぶ新しい概念 ではなく、同じ「なぞって取ってくる」考え方のバリエーションだと見れば、より腑に 落ちます。

この記事で学べること

  • 回転した VLOOKUP としての HLOOKUP:をなぞり、それから下へ読む
  • 水平レイアウトが実際に HLOOKUP を正しい道具にするとき
  • なぜ LOOKUP には完全一致がないのか——その1つの致命的な設計欠陥
  • 古いブックで見つかる LOOKUP(2, 1/…) の技と、それが何をしているのか
  • なぜ XLOOKUP がこの両方を静かに任意(オプション)にするのか

HLOOKUP:VLOOKUPを90度回転

VLOOKUP について知っていることはすべて HLOOKUP に当てはまります——「列」を「行」に入れ替えるだけ。テーブルの最初の行を 左から右へ探し、値を見つけると row_index_num 行ぶん下へ進みます:

=HLOOKUP(lookup_value, table, row_index_num, [range_lookup])
=HLOOKUP("Mar", A1:M4, 3, FALSE)   ' "Mar"は1行目にある;3行目のセルを返す

H水平(horizontal)の H です。第4引数は VLOOKUP のものと同じように振る舞い ます:省略すると、最初の行が左から右へソートされている必要がある近似一致になります; ほぼ常に欲しい完全一致には FALSE を渡します。そして VLOOKUP と同じく、一方向にしか 読みません——一致した行から下へ——なので、欲しい値は検索する行の下になければ なりません。

HLOOKUPが実際に正解になるとき

HLOOKUP が居場所を得るのは、データが本当に横方向に並んでいるときです:期間ラベル (Jan, Feb, Mar…)が1行目に沿って走り、指標がその下の行に積まれている。これは転置 されたテーブルで、これに対しては HLOOKUP が自然な選択です——VLOOKUP ならデータを 先にピボットする必要があるところです。

' 1行目:Jan Feb Mar Apr ...   2行目:売上   3行目:原価   4行目:利益
=HLOOKUP(G1, A1:M4, 4, FALSE)     ' G1 = "Mar" -> 3月の利益

とはいえ、それがどれくらいの頻度で起こるかは正直になりましょう。ほとんどの Excel データは縦方向に保存されています——レコードは下へ、フィールドは横へ——だからこそ VLOOKUP と INDEX/MATCH が支配的で、HLOOKUP は専門家(スペシャリスト)なのです。 レイアウトを自分で制御できるなら、縦方向がほぼ常により良い構造です。HLOOKUP は、 横方向のものを引き継いでしまったときのためのものです。

LOOKUP:1つの致命的欠陥を持つ先祖

LOOKUP は VLOOKUP より古く、ほとんどの現代的な用途から失格させる設計上の選択が あります:完全一致引数がない。 渡すべき FALSE が存在しないのです。LOOKUP常に近似一致をし、検索範囲が昇順にソートされている常に仮定します。ソート されていないデータを食わせると、エラーなしで間違った答えを返します——静かな失敗、 しかもそれをオフにする方法がありません。

より有用な「ベクトル形式」は3つの引数を取ります——検索ベクトルと、別々の結果ベクトル:

=LOOKUP(F2, A2:A500, C2:C500)   ' A(ソート済み!)を探し、一致するCを返す

検索範囲と結果範囲のその分離は良い性質です——INDEX/MATCH のように左を見られます ——けれど、それはソート済みデータでの強制的な近似一致という代償で買われています。 選べるなら、完全一致の VLOOKUPINDEX/MATCH、あるいは XLOOKUP が、重要なあらゆる面でそれに勝ります。

古いブックにある LOOKUP(2, 1/…) の技

引き継いだシートを開くと、こんな暗号めいたものを見つけるでしょう:

=LOOKUP(2, 1/(A2:A500=F2), C2:C500)    ' 最初ではなく、最後の一致を返す

これは LOOKUP の近似的な性質を巧妙に利用したものです。式 1/(A2:A500=F2) は、行が F2 に一致するところで 1 を、一致しないところで #DIV/0! エラーを生みます。決して 存在しない値である 2 を探すことで、LOOKUP を末尾まで走らせ、見た最後1 ——つまり最後に一致した行——に落ち着かせます。それは、現代的なツールが存在する前に 「最後の一致」を得る標準的な方法でした。

もう自分で書く必要はありませんが、見分けられるべきです。Excel 365 では、同じ意図が XLOOKUP の逆方向検索ではるかに明確になります:

=XLOOKUP(F2, A2:A500, C2:C500, , 0, -1)   ' -1 = 下から上へ検索 -> 最後の一致

判断:この2つはどこに収まるか

一族をまるごと並べると、決定木は短くなります:

  • VLOOKUP — 縦方向のデータ、完全一致、右へ 返す。日常の既定。
  • INDEX/MATCH — 縦方向のデータだが、左を見たり、 列の編集に耐えたり、二次元検索をしたいとき。
  • HLOOKUP — データが本当に横方向に水平に走っているとき。
  • LOOKUP誰かの古い数式を読んでいるとき。新しい仕事には、置き換えます。
  • XLOOKUP — Excel 365 では、垂直、水平、左、右、 最後の一致、そして「見つからない」の既定値を1つの関数でこなし、HLOOKUP と LOOKUP を ほぼ任意にします。

HLOOKUP も LOOKUP も、進んで探し求めるものではありません。いずれ出会う転置テーブルの ために HLOOKUP を知り、引き継いだときにより良いものへ翻訳できるくらいには LOOKUP を よく知っておきましょう。

ExcelMaster の使いどころ

これらの関数が話題になる半分は、誰かが作ったブックを開いたから——横方向の HLOOKUP レポートや、当惑させる LOOKUP(2,1/…) の数式——それを理解したり、現代化したりする 必要があるからです。ExcelMaster は既存の数式を読み、それが実際に何をしているかを 説明し、古いやり方が脆いときには明確な XLOOKUPINDEX/MATCH に書き直します——だから、あなたが引き継ぐ のはリスクではなく、結果です。

よくある質問

HLOOKUPとVLOOKUPの違いは?

VLOOKUP垂直に検索し——最初の列を下へ——右側の列から値を返します。HLOOKUP水平に検索し——最初の行を横へ——下の行から値を返します。データが縦ではなく横に ラベルが並んで配置されているときに HLOOKUP を使います。両者とも同じ第4引数を取り、 FALSE が完全一致を意味します。

LOOKUP関数を避けるべきなのはなぜ?

LOOKUP には完全一致オプションがありません——常に近似一致をし、データが昇順に ソートされていることを要求するので、ソートされていないデータでは、その挙動を無効に する方法もなく、静かに間違った答えを返します。代わりに、いずれも完全一致に対応する、 完全一致の VLOOKUPINDEX/MATCH、または XLOOKUP を使いましょう。

LOOKUP(2, 1/(range=value)) は何をする?

最後に一致した行を返します。1/(range=value) は一致する行に 1 を、それ以外に エラーを与えます;決して存在しない 2 を探すことで、LOOKUP を最後の 1 に落ち着か せます。それはレガシーの「最後の一致」の技です——Excel 365 では、より明確な逆方向 検索に XLOOKUP(value, range, result, , 0, -1) を使います。

HLOOKUPはVLOOKUPと同じ完全一致の罠を持つ?

はい。HLOOKUP の第4引数(range_lookup)は既定で TRUE(近似)になり、最初の行が 左から右へソートされている必要があります。VLOOKUP と同じく、完全一致には FALSE を 渡します。

XLOOKUPはHLOOKUPとLOOKUPを置き換えられる?

はい。Excel 365 では、XLOOKUP はどの方向にも検索します ——垂直でも水平でも、前方でも逆方向でも——既定で完全一致、そして組み込みの「見つから ない」値を備え、HLOOKUP と LOOKUP がすることのすべてと、それ以上をカバーします。

検証環境

検証環境: Excel 365(Windows 11)— 最終確認 2026-07-05。

関連ガイド: ExcelのVLOOKUP · ExcelのINDEX & MATCH · XLOOKUP(2025) · ExcelのIFERROR · ExcelのFILTER