スポンサーリンク
Excelで「コードに対応する商品名を取得したい」「社員番号から所属部署を自動表示させたい」など、別表から値を引っ張ってくる時に活躍するのがVLOOKUP関数です。
1.基本構文
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
- 検索値:探すキー値
- 範囲:検索する表
- 列番号:取り出したい列(1列目が基準)
- 検索方法:FALSE(完全一致) or TRUE(近似一致)
2.商品情報をVLOOKUPで取得する方法
「商品名」から「商品番号」と「単価」を求める実例
VLOOKUPは、検索で取り出せる列は1列なので、複数列求める場合は列毎に数式の設定が必要。
A3をキーにE列を検索し一致したF列(商品番号)を求める数式
=VLOOKUP($A3,$E3:$G7,2,FALSE)
→2は、範囲の左から2列目なのでF列を取得

A3をキーにE列を検索し一致したG列(単価)を求める数式
=VLOOKUP($A3,$E3:$G7,3,FALSE)
→3は、範囲の左から3列目なのでG列を取得

スポンサーリンク
3.注意点
- VLOOKUPは、指定した範囲の最左列で検索を行います。
つまり、検索値が範囲の左端にないと検索できません。 - 上記の例では、範囲の最左列は、「商品名」なので、「商品名」でのみ検索可能となります。
- 列を追加/削除すると列番号がずれる(→対策:INDEX/MATCH関数)
4.エラー対処
#N/A:検索値が見つからない
検索した「商品名」が商品マスターに存在していなかった場合

対処:不一致時のエラーを回避する関数(IFERROR)追加
例1:「商品名」が商品マスターに存在していなかったら「空白」にする
=IFERROR(VLOOKUP($A3,$E3:$G7,2,FALSE),"")
例2:「商品名」が商品マスターに存在していなかったら「無し」表示にする
=IFERROR(VLOOKUP($A3,$E3:$G7,2,FALSE),"無し")

#REF!:列番号が範囲外
エラーは発生していないケース

範囲のG列が削除されたためエラーとなったケース
G列が削除されたため、範囲は、「$E3:$G7」から「$E3:$F7」に自動更新はされた。しかし、取り出し列番号3(G列)の指定は以前のままで、実際には範囲列が2つ(E列とF列)になり、列番号3(G列)は範囲外になったためエラーとなる。

対処:参照のエラーとなっている箇所を修正する
例1:G列「単価」が削除されたため、C列「単価」の関数は削除する
5.まとめ
- VLOOKUPは別表から情報を自動取得できる関数
- 複数の列の値を一度に返すことはできません。列毎の指定が必要。
- INDEX/MATCHに置き換えることで柔軟性もアップ
- 初心者〜中級者には必須の一歩
スポンサーリンク
6.関連記事
- \(新関数)XLOOKUP関数 (Excel 365/2019以降で使用可能)/
Excel XLOOKUP関数|VLOOKUP弱点解消!複数条件 - \VLOOKUPとXLOOKUP関数は何が違う?/
Excel VLOOKUPとXLOOKUPの違い|新旧検索比較
スポンサーリンク
コメント