VLOOKUPは「表から探して、持ってくる」関数
VLOOKUP(ブイルックアップ)は、表の中から、特定の値を探し、同じ行にある別の列の値を取り出す関数です。たとえば、「商品コードを入力すると、商品名と単価が自動で表示される」といった使い方ができます。
手作業でコピーして貼り付けるより、入力ミスが減り、表が更新された時にも対応しやすくなります。
書式と4つの引数
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
| 引数 | 意味 | 例 |
|---|---|---|
| 検索値 | 探したい値 | A2(商品コードの入ったセル) |
| 範囲 | 探す対象の表 | $E$2:$G$100 |
| 列番号 | 範囲の左から数えて、何列目の値を取り出すか | 2(2列目) |
| 検索方法 | FALSE(完全一致)またはTRUE(近似一致) | FALSE |
具体例:商品コードから、商品名を引く
次のような商品表が、E列からG列にあるとします。
| E列:商品コード | F列:商品名 | G列:単価 |
|---|---|---|
| A001 | ノート | 150 |
| A002 | ボールペン | 100 |
| A003 | ファイル | 300 |
A2セルに商品コードを入れ、B2セルに商品名を表示するには、次のように入力します。
=VLOOKUP(A2,$E$2:$G$4,2,FALSE)
A2に「A002」と入れると、2列目の「ボールペン」が表示されます。単価を表示したい場合は、列番号を「3」にします。
範囲に「$」を付ける理由
「$E$2:$G$4」のように「$」を付けると、数式をコピーしても、範囲がずれません。これを絶対参照といいます。F4キーを押すと、「$」を自動で付けられます。
#N/Aエラーが出る原因と対処
VLOOKUPで最もよく出るのが、「#N/A」(見つからない)エラーです。次の原因を、順番に確認してください。
| 原因 | 確認のしかた | 対処 |
|---|---|---|
| 検索値が、表に存在しない | 表に、同じ値があるか目で確認 | 値を修正、または表に追加 |
| 余分なスペースが入っている | セルを選んで、前後の空白を確認 | TRIM関数で、空白を除く |
| 全角・半角が違う | 「A001」と「A001」のように、見た目は似ている | 表記をそろえる |
| 文字列と数値の違い | セルの左寄せ(文字列)・右寄せ(数値)を確認 | 表示形式をそろえる |
| 検索値が、範囲の左端の列にない | 範囲の始まりの列を確認 | 範囲の指定を、検索値のある列から始める |
文字と数字の扱いが原因の場合は、Excelの文字と数字の変換で、詳しい対処を解説しています。
エラー表示を、きれいに隠す:IFERROR
見つからない時に、「#N/A」の代わりに、別の文字を表示させたい場合は、IFERROR関数で囲みます。
=IFERROR(VLOOKUP(A2,$E$2:$G$4,2,FALSE),"該当なし")
ただし、エラーを隠すと、入力ミスにも気づきにくくなります。作業中は、エラーを表示したままにして、完成後にIFERRORを付けるのがおすすめです。
VLOOKUPの弱点と、XLOOKUP
VLOOKUPには、次の制約があります。
- 検索値は、範囲の一番左の列になければならない
- 列番号を、「数える」必要があり、列を挿入すると、結果がずれることがある
新しいバージョンのExcel(Microsoft 365など)では、これらを解消したXLOOKUP関数が使えます。使えるバージョンは限られるため、共有する相手の環境を確認してください。関数の基本は、関数とはでも解説しています。
振り返ると
VLOOKUPは、「検索値、範囲、列番号、検索方法(FALSE)」の4つを指定して、表から値を取り出す関数です。範囲には「$」を付け、エラーが出た時は、スペースや全角半角、文字列と数値の違いを疑いましょう。
関連記事:IF関数の使い方
あわせて読みたい:Excelでプルダウンリストを作る方法、Excelで重複を見つけて削除する方法
あわせて読みたい:XLOOKUP関数の使い方
あわせて読みたい:SUMIFS・COUNTIFS関数の使い方