なぜVlookup関数は使わない方がいいの?Vlookup関数の代わりに使用する関数は?

未分類

Excelを使っているとどうしても壁にぶつかるのがVlookup関数です。
これまでSUM関数やAverage関数は使えたけれど、いきなり難しくなる関数の一つです。

でも、Vlookup関数は正直あまりオススメしません。
今回はなぜ、Vlookup関数は使わない方がいいの?Vlookup関数の代わりになるものは?についてブログを書きたいと思います。

vlookupとは

VOOKUP は「ブイルックアップ」と読みます。「Vertical」 (垂直) を意味する V と「LOOKUP」 (探す) の略で、表の縦方向にデータを検索し、一致した値と同じ行にあるデータを返す関数のことです。特定の値で表を検索し、表の中の必要な情報を抽出することができます。また、元となるデータから値を取得することで、数字や文字の間違いや表記のブレを防ぐこともできます。

VOOKUP 関数の活用例としては、商品コードから商品情報を抽出する、顧客コードから氏名や住所などの顧客情報を取り出すなどがあります。さまざまな表から必要な情報を抽出することが主な用途ですが、応用としてデータの抜け漏れチェックや表の結合などにも利用できます。

Microsoftページ参照

Vlookupの欠点

Vlookupには欠点が大きく2つあります。

  • Vlookupは検索値を検索範囲の1列目に設定しなければいけない
  • 複数の検索条件を設定することができない

Vlookupは検索値を検索範囲の1列目に設定しなければいけない

Vlookup関数は選択した1列目に検索値がヒットする列をもって来る必要があります。
今回のQ2のケースのように、抽出した情報より右側に条件がある場合はVlookup関数では抽出することができません。

Vlookupは検索値を検索範囲の1列目に設定しなければいけないイメージ

複数の検索条件を設定することができない

Vlookupは式を入力際以下の情報必要になります。
=Vlookup(検索値,範囲,列,検索方法)
複数条件の際、検索値を複数入力する必要がありますが、条件の型が文字列×文字列の形式ができません。

下図は例です。「マリア」かつ「女性」かつ「イギリス出身」がVlookup関数ではできません。
どうしても重ならない情報の列(ID等)を設ける必要があります。

複数の検索条件を設定することができないイメージ

Vlook関数の代わりに使うものは?

Index関数とMatch関数を組み合わせて使います。

Xlookupという関数もありますが、新しい関数のため使用できないバージョンがあります。
また、複数条件にも適用できるので、非常に便利です。

仕組みはVlookup関数と似ています。
先ほど挙げた2つの点において、優れています。

Vlookupを使う時に必要な値は、「検索値」「範囲」「列番号」「検索方法」の4つです。

Index関数で「範囲」と「列番号」をMatch関数で「検索値」と「検索方法」を抽出します。

抽出の仕方

まずVlookupとIndex・Match関数で抽出する方法を見比べる形で記載していきます。
以下のデータでNo3のデータで出身国(イギリス)を抽出する方法を記載していきます。

抽出の仕方イメージ

Vlookupで抽出する方法

式はこのようになります。
=VLOOKUP(3,C2:G17,4,FALSE)
下図はイメージです。

Vlookupで抽出する方法イメージ

Index・Match関数で抽出する方法

式はこのようになります。
=INDEX(C2:G17,MATCH(3,C2:C17,0),4)

範囲→行番号→検索方法→列番号の順になります。

Index・Match関数で抽出する方法イメージ

Match関数で行数を検索しているという点がVlookupと少し違うところです。
「Vlookupは検索する列は1行目と決まっている。」「Match関数は列を自分で設定できる」
そのため、Match関数の方が自由度が高くなります。

このIndexとMatch関数を使用すれば複数条件で抽出も可能です。
こちらの記事にて詳しく記載しておりますので、こちらも御覧ください。

まとめ

いかがでしたでしょうか。
Vlookup関数はデータを抽出する際に使う頻度が多い関数です。
汎用性という点で使いづらさを感じます。

汎用性の高いIndex・Match関数を一度使ってしまうと、その使いやすさに驚きます。
ぜひ使ってみてください。

コメント