VLOOKUP は表の左端の列から値を探し、同じ行の指定した列の値を取り出す関数です。第4引数は原則 FALSE(完全一致)で使います。
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])| 引数 | 必須 | 意味 |
|---|---|---|
| 検索値 | 必須 | 探す値 |
| 範囲 | 必須 | 表全体。検索値は必ず範囲の1列目にあること |
| 列番号 | 必須 | 取り出す列を、範囲の左から数えた番号で指定(1始まり) |
| 検索方法 | 任意 | FALSE=完全一致(通常はこれ)/TRUE・省略=近似一致(昇順ソート必須) |
A列=商品コード、B列=商品名、C列=単価。コード「A102」の単価(左から3列目):
=VLOOKUP("A102", A2:C100, 3, FALSE)| 原因 | 確認・対処 |
|---|---|
| 本当に値が無い | IFERRORで包んで表示を整える(下記) |
| 見た目は同じで実は違う | 前後の空白(TRIM)、全角/半角、文字列の数字と数値の混在を確認 |
| 検索値が範囲の1列目に無い | 範囲の指定を直すか、XLOOKUPを使う |
=IFERROR(VLOOKUP(E2, A2:C100, 3, FALSE), "該当なし")| やりたいこと | 解決策 |
|---|---|
| 検索列より左の列を取り出す | XLOOKUP か INDEX+MATCH |
| 列を挿入しても壊れないようにする | XLOOKUP(列番号を使わないため) |
| 複数条件で検索する | 作業列で条件を連結するか、XLOOKUPで「範囲1&範囲2」を検索 |
| 2つ目以降の一致も全部取る | FILTER関数(Excel 2021以降・Sheets) |
唯一の正しい用途は「段階表」です。点数から評価を引くなど:
=VLOOKUP(85, {0,"不可"; 60,"可"; 70,"良"; 80,"優"}, 2, TRUE)
→ 優 (80以上90未満の段階に落ちる。1列目は昇順であること)