VLOOKUPはVertical(縦方向)、HLOOKUPはHorizontal(横方向)の検索です。データが縦に並ぶ表(1行=1件)なら =VLOOKUP(検索値, 範囲, 列番号, FALSE)、見出しが横に並ぶ表なら =HLOOKUP(検索値, 範囲, 行番号, FALSE)。Microsoft 365なら XLOOKUP が縦横どちらにも対応できます。
「VLOOKUPとHLOOKUPは何が違うの?」「どっちを使えばいい?」——名前がよく似たこの2つの関数は、検索する方向が違うだけで、考え方はまったく同じです。この記事では、同じデータを縦・横2種類の表にして、2つの関数の違いを比較しながら解説します。

違いは「表の向き」だけ
| VLOOKUP | HLOOKUP | |
|---|---|---|
| 検索方向 | 縦(Vertical) | 横(Horizontal) |
| 検索値を探す場所 | 範囲の左端の列 | 範囲の上端の行 |
| 取り出す位置の指定 | 左から数えた列番号 | 上から数えた行番号 |
| 向いている表 | 1行=1件の縦持ちの表(名簿・台帳) | 見出しが横に並ぶ表(月別集計など) |
つまり、「検索値がどの方向に並んでいるか」で使う関数が決まります。実務のデータは縦持ちが圧倒的に多いため、VLOOKUPの出番が多くなります。
サンプルデータで比較する
以下のサンプルデータをExcelシートにコピーして、実際に数式を試してみてください。
練習用のExcelファイルはこちらからダウンロードできます:
Excel-vlookup-hlookup-difference-1.xlsx(ダウンロード)
縦の表 → VLOOKUP
| A | B | C | |
|---|---|---|---|
| 1 | 商品コード | 商品名 | 価格 |
| 2 | A001 | りんご | 120 |
| 3 | A002 | みかん | 80 |
| 4 | A003 | バナナ | 150 |
商品コード「A002」の価格を取り出すには、次のように入力します。
=VLOOKUP("A002", A2:C4, 3, FALSE) → 結果: 80
範囲 A2:C4 の左端の列(A列)から A002 を探し、左から3列目(価格)を返します。
横の表 → HLOOKUP
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 月 | 4月 | 5月 | 6月 |
| 2 | 売上 | 120 | 95 | 140 |
| 3 | 利益 | 30 | 22 | 41 |
「5月」の利益を取り出すには、次のように入力します。
=HLOOKUP("5月", B1:D3, 3, FALSE) → 結果: 22
範囲 B1:D3 の上端の行(1行目)から 5月 を探し、上から3行目(利益)を返します。列番号が行番号に変わっただけで、引数の考え方はVLOOKUPと同じです。
XLOOKUPなら縦も横も同じ書き方
Microsoft 365・Excel 2021以降で使えるXLOOKUP関数は、「検索する範囲」と「返す範囲」を別々に指定するため、縦横を意識せず同じ書き方ができます。
縦の表: =XLOOKUP("A002", A2:A4, C2:C4) → 80
横の表: =XLOOKUP("5月", B1:D1, B3:D3) → 22
範囲指定を「検索する列(行)」と「返す列(行)」に分けるだけで、列番号・行番号を数える必要もありません。新しいExcelを使っているなら、VLOOKUP・HLOOKUPの代わりにXLOOKUPを使うのがおすすめです。
まとめ
VLOOKUPとHLOOKUPの違いは「検索の方向」だけです。縦持ちの表ならVLOOKUP、横持ちの表ならHLOOKUP、そしてMicrosoft 365ならどちらもXLOOKUPで置き換えられます。まずは手元の表の向きを確認して、使う関数を選んでください。
▶ こんな場合はこちら:VLOOKUP関数の使い方まとめ(基本から応用まで)/XLOOKUP関数の複数条件検索

コメント