【図解】[VLOOKUP]よりも早くて便利![INDEX]+[MATCH]の組み合わせ関数!
別表(単価表など)から
メインの表(売上表など)にデータを入れ込みたいとき
みなさん、どのように記入・転記していますか?
関数 [ VLOOKUP ] を使っていますか?
実は [ VLOOKUP ] よりも処理速度が速く、且つ便利な関数が存在します。
その関数は
数式:= INDEX ( ① , MATCH ( ② , ③ , ④ ))
No. | 入力 or 選択するもの |
---|---|
① | 欲しいデータが並んでいる “列” を選択 |
② | 並行する抜き出したい “キーワード” を選択 |
③ | キーワードが並んでいる “列” を選択 |
④ | 完全一致の “0” を記入 |
です。
数式を2つ組み合わせる為、少々複雑で、
最初は難しく感じるかもしれませんが、慣れれば大したことはありません。
すぐに使いこなせるようになります。
まずは
どうしたら関数 [ VLOOKUP ] と同じ効果が得られるか?
数式例と式構成、実演をもとにご紹介していきます。
[数式の例]と[式の構成]について
まずは数式の例と構成について見ていきます。
こちらだけをご覧になれば問題無く処理できます。
上の図1をご覧頂きながら考えると、具体的で簡単です。
各品名の単価データを埋め込んで売上表を完成させたい。
その場合には
数式例:=INDEX(I:I,MATCH(B4,H:H,0))
構 成:= INDEX ( ① , MATCH ( ② , ③ , ④ ))
No. | 入力 or 選択するもの | 図1で言うと |
---|---|---|
① | 欲しいデータが並んでいる “列” を選択 | “I列” |
② | 並行する抜き出したい “キーワード” を選択 | “B列の任意の1セル” |
③ | キーワードが並んでいる “列” を選択 | “H列” |
④ | 完全一致の “0” を記入 |
図解
①には
単価表の”単価”の列を列ごとそのまま選択します。この意味は「今回引っ張ってきたいデータはこの列に有ります」の“この列”を選択する、と考えて下さい。
②には
数式を入れているセルに並行している”品名”の1つを選択します。この意味は、「この品名の単価を単価表から抜き出してきてね」の“この品名”を選択する、と考えて下さい。
③には
単価表の”品名”の列を列ごとそのまま選択します。この意味は、「2で選択した品名(キーワード)をこの列から探してきて」の“この列”を選択する、と考えて下さい。
④には
基本的に完全一致の”0”を記入する。
以上で必要としていた単価データを
引っ張り出す事が出来たはずです。
出来なかった場合は
「②で選択したキーワード」と「③で指定した列に有るキーワード」が
完全に一致していない事が考えられます。
具体的には、下記の図を見て確認してみてください。
検索値と検索範囲内の検索キーは一致しているか?
例えば、上の図のように、
①空白がある
②半角、全角が一致していない
③言葉は一緒だが、漢字・ひらがな・カタカナで一致していない
この場合がほとんどだと思いますので、
まずは確認してみてください。
どうして[VLOOKUP]よりもお勧めなのか?
理由は3つあります。
1.単価表の品名部分(検索用元データのキーワード)を一番左に置かなくてOK
2.単価表(検索用元データ)の更新が楽
3.処理速度が速い
この3点です。
1に関しては
[VLOOKUP]は、その数式の性質上、検索範囲を指定する際に一番左にキーワードを配置しなければなりません。使用されたことがある方は「これは非常に厄介な事だ」と感じませんでしたか?今回の【INDEX + MATCH】では、その設定は不要です。どこに並んでいても問題ありません。
2の「単価表(検索用元データ)の更新が楽」に関しては、
例えば[VLOOKUP]の場合は、図1で言えば検索範囲を当然(H4:I12)とするのではないでしょうか?それでは今後、品名が増えて単価表を更新したらどうでしょうか?検索範囲に指定した元データに、データを追加した場合、追加分は自動では反映されません。手動で数式内の範囲を(H4:I13)などと下へスライドさせる必要が出てくるのです。一方、【INDEX + MATCH】は列ごと指定しているので、検索用元データを追加更新した際も、特別に数式を更新する必要が無いのです。
3に関しては、
他サイトで計測結果を紹介しています(比較対象はMATCH関数ですが、記事中ほどにINDEX+MATCH関数に関しても言及があります)。そちらをご参考にして頂ければ幸いです。つまりは、断然 [VLOOKUP関数] よりも処理速度も速いという事です。
以上になります。