VLOOKUP関数で一致するものと一致しないものを区別して抽出する方法をご紹介します。今回は一致するものに「OK」、一致しないものには「NG」で返していきます。
一致しないもの一致するものを区別して抽出する方法
通常、VLOOKUP関数では検索値の値が指定したデータ範囲の左列にあれば、指定した任意の列数の値を返してくれる関数です。
この時、一致するものは抽出できますが、一致しないものに関しては「N/A」エラーになってしまいます。この「N/A」を返さない方法として最も有名なのが「IFERROR関数」を組み合わせることです。
2個目の方法としては「IF関数」をVLOOKUP関数と組み合わせる方法があります。今回のやりたいことは「一致するものにOK、一致しないものにはNG」なので、IFERROR×IF×VLOOKUP関数の組み合わせ方法をご紹介します。
IFERROR×IF×VLOOKUP関数でデータ抽出
IFERROR関数の基本構文は「=IFERROR(値,エラーの場合の値)」、IF関数の基本構文は「=IF(論理式,真の場合,偽の場合)」、VLOOKUP関数の基本構文は「=VLOOKUP(検索値,範囲,列番号,検索方法)」になります。
3つの関数を組み合わせる手順は以下の通りです。
- IFERROR関数を挿入
- IFERROR関数の値にIF関数を挿入
- IF関数の論理式にVLOOKUP関数を挿入
関数式で表示すると「=IFERROR(IF(VLOOKUP(検索値,範囲,列番号,検索方法),真の場合,偽の場合),エラーの場合の値)」となります。
では、実際の具体例を用いて解説していきます。
一致するものにOK、一致しないものにはNGを返す具体例
上記の表を使って具体例を解説していきます。表の説明として、A列には名前・B列には名前に対する売上が入力されている。この時D2セルに入力された名前がA列にあればE2セルにはOK、A列になければE2セルにNGを返すとする。
ここでポイントになるのがE2セルに入力された名前がA列にある場合とない場合の検索をする関数(VLOOKUP関数)と条件分岐をする関数(IF関数)が必要になるのです。また検索をする関数では、値が見つからない場合はエラーになるので、エラーを回避する関数(IFERROR関数)が必要になるのです。
=IFERROR(IF(VLOOKUP(D2,A:A,1,0)=D2,"OK",""),"NG")
上記の数式をE2セルに挿入することで、D2セルに入力された名前がA列に一致するかを調べてくれます。一致した場合はOKを返し、一致しない場合はNGを返すことができます。
まとめ
VLOOKUP関数で一致するかしないかでデータを抽出する方法をご紹介しました。今回は抽出というよりは、返す値を指定していたので疑問に思った方もいると思います。ですが、今回紹介した数式でOKやNGの場所にVLOOKUP関数を挿入することでデータの抽出も可能となります。ぜひ皆さんも試してみてください。