VLOOKUP関数の使い方

テーブルの左端列を検索し、対応する値を取得します。

200720102013201620192021365
構文
=VLOOKUP(検索値, 範囲, 列番号, [検索の型])
引数
  1. 検索値必須
  2. 範囲必須
  3. 列番号必須
  4. 検索の型省略できる
どんな関数か

指定した範囲の左端の列を上から探し、見つかった行の、指定した列の値を返します。探す列は範囲のいちばん左でなければならず、その左側にある値は取り出せません。また4つめを省くと近い値で探すため、並べ替えていない表では黙って違う行を返します(ふつうは FALSE を書きます)。
XLOOKUP との違いは5つあり、左の列を返せる・既定が完全一致・見つからないときの値を直接書ける・列を挿しても壊れない・下から探せる、のどれも XLOOKUP の側です。新しく書くなら XLOOKUP、Excel 2019 以前の人にも配るファイルなら VLOOKUP を使います。

使用例

F2 に =VLOOKUP(E2, A2:C5, 2, FALSE) を入れると、こうなります。

ABCDEF
1ID商品単価検索ID抽出名
2A001りんご100A003みかん
3A002ばなな150
4A003みかん120
5A004ぶどう200

数式を入れたセル数式が見に行った値

結果: 商品ID「A003」に対応する「みかん」

つまずきやすいところ

  • 探す列は、指定した範囲のいちばん左でなければならない。左側にある値は取り出せない(そのときは INDEX と MATCH、または XLOOKUP)
  • 列番号は、シートの列(A・B…)ではなく指定した範囲の中で左から何番目か
  • 4つめを省略すると「近い値」で探してしまう。ふつうは FALSE(完全一致)を書く
  • 下の行にコピーすると範囲がずれる。$A$2:$C$100 のように $ で固定する

よくあるエラーと、その直し方

#N/A
検索値が範囲の中に見つからない見つからないときの表示を決めるなら IFNA で包む(IFERROR だと #REF! などほかのエラーまで隠れる)。余分な空白が原因のこともあるので TRIM で取る。数字が文字として入っていないかも確かめる
#REF!
列番号が、範囲の列数より大きい範囲を広げるか、列番号を直す
#VALUE!
列番号に 0 以下を指定した1 以上にする

似ている関数との違い

VLOOKUPを使う実例レシピ(9件)

同じ「検索・行列」の関数

検索・行列の関数をすべて見る(39件)