はじめに
VLOOKUP 関数は、膨大なデータからあるデータを抽出することが簡単にできる関数であり、Excel 関数で最も使われる関数のひとつです。
しかし、VLOOKUP 関数は、構造が複雑ではじめのうちはなかなかうまく使いこなせず、そのうえエラーが起きる場合もあります。
このページでは、Excel の VLOOKUP 関数の使い方とそのエラーが発生した場合の原因と対処方法をわかりやすく説明します。
VLOOKUP 関数
まずはじめに VLOOKUP 関数の基本的な使い方について説明します。
VLOOKUP 関数の使い方
検査値
データから検索する「キーワード」のことです。
範囲
検索するデータ範囲を示します。
列範囲
データ範囲に対して、取得した情報の列番号を示します。
例えば、【氏名】を検査値(キーワード)にした場合の【年齢】の情報を取得しようとします。
その場合、【氏名】の列番号 = 1 に対して【年齢】の列番号 = 2 と指定します。
検査方法
以下の二つの値を指定します。基本的には FALSE でやることをお勧めします。省略した場合は TRUE になります。
- TRUE
→ 近似一致 (あいまい検索) - FALSE
→ 完全一致
※ 近似一致と完全一致の違いについて
VLOOKUP から検索する内容によっては近似値(近い値)が欲しい場合もあります。
例えば下記画面のデータがあり、【値段】が250 の場合【感想】のどの値に近いか検索する場合などには有用です。
※ ただし【値段】は必ず昇順にする必要があります(Excel の仕様)。
具体例
例えば、下記画面のようなデータがあるとします。【氏名】= ”山田” の情報が欲しい場合どのように表記すればよいのでしょうか?
【年齢】の情報を取得する場合は下記のように記述します。
この構成について、以下になります。
- 検査値 = F2 → 「山田」
- 範囲 = A2:D6 → データ範囲 (A列2行から D列4行の範囲)
- 列番号 = 2 → 【年齢】の列番号
- 検査方法 = FALSE → 完全一致
VLOOKUP を使用する上での注意点
検査値(キーワード)を1列目にすること!
検査値はセル範囲の1列目にしないとエラーが表示されます。
例えば、2列目の【年齢】を検査値とし、セル範囲の2列目にある場合はエラーとなりますのでご注意ください。
IFERROR 関数もセットで使おう(オススメ!)
VLOOKUP で検査値の値がない場合はエラーになります。
しかし、大量のデータからあるデータを抽出する場合、データが存在しないこともあります。
そういった場合には、IFERROR 関数をセットで使うことをお勧めします。
IFERROR と VLOOKUP を使いこなす場合、下記のように記述します。
値の箇所に VLOOKUP 関数の中身を記述し、エラーの場合に "" (何も表示しない)とします。
これを使うと VLOOKUP 関数でエラーが起きた場合も、エラーが表示されることなくありません。
IFERROR をつけていない場合
IFERROR をつけている場合
IFERROR 関数は VLOOKUP 以外の関数においても、エラーが起きた場合に対処できるとても便利な関数なので、ぜひ覚えておいてください。
まとめ
VLOOKUP関数は非常に便利ですが、その分さまざまな制約があります。
VLOOKUP 関数がうまくいかない場合は、MATCH 関数(検査値が含まれる行を取得)と INDEX 関数(指定した行と指定した列のセルの値を取得)を組み合わせても同様に同じ結果が得られますので、ぜひそちらの関数も使いこなせるようになってください。
なお MATCH 関数と INDEX 関数を組み合わせる方法は下記リンクになります。