【図解】[VLOOKUP]よりも早くて便利![INDEX]+[MATCH]の組み合わせ関数!

2021年3月29日

別表(単価表など)から
メインの表(売上表など)にデータを入れ込みたいとき
みなさん、どのように記入・転記していますか?
関数 [ VLOOKUP ] を使っていますか?
実は [ VLOOKUP ] よりも処理速度が速く、且つ便利な関数が存在します。

Excel_VLOOKUP_1
例えば、右の赤枠内のデータを、左赤枠内の該当する部分に転記する場合です。

その関数は

数式:= INDEX ( , MATCH ( , , ))

No.入力 or 選択するもの
欲しいデータが並んでいる “列” を選択
並行する抜き出したい “キーワード” を選択
キーワードが並んでいる “列” を選択
完全一致の “0” を記入

です。
数式を2つ組み合わせる為、少々複雑で、
最初は難しく感じるかもしれませんが、慣れれば大したことはありません。
すぐに使いこなせるようになります。

まずは
どうしたら関数 [ VLOOKUP ] と同じ効果が得られるか?
数式例と式構成、実演をもとにご紹介していきます。
 

広告

[数式の例]と[式の構成]について

まずは数式の例と構成について見ていきます。
こちらだけをご覧になれば問題無く処理できます。
 

Excel_INDEX_MATCH_1-2
図1

上の図1をご覧頂きながら考えると、具体的で簡単です。
各品名の単価データを埋め込んで売上表を完成させたい。

その場合には

数式例:=INDEX(I:I,MATCH(B4,H:H,0))
構 成:= INDEX ( , MATCH ( , , ))

No.入力 or 選択するもの図1で言うと
欲しいデータが並んでいる “列” を選択“I列”
並行する抜き出したい “キーワード” を選択“B列の任意の1セル”
キーワードが並んでいる “列” を選択“H列”
完全一致の “0” を記入

図解

Excel_INDEX_MATCH_1
①必要なデータがある1列を、列ごと選択

①には
単価表の”単価”の列を列ごとそのまま選択します。この意味は「今回引っ張ってきたいデータはこの列に有ります」の“この列”を選択する、と考えて下さい。
 

Excel_INDEX_MATCH_2
②並行するキーワードを選択

②には
数式を入れているセルに並行している”品名”の1つを選択します。この意味は、「この品名の単価を単価表から抜き出してきてね」の“この品名”を選択する、と考えて下さい。
 

Excel_INDEX_MATCH_3
③キーワードが並ぶ1列を、丸ごと選択

③には
単価表の”品名”の列を列ごとそのまま選択します。この意味は、「2で選択した品名(キーワード)をこの列から探してきて」の“この列”を選択する、と考えて下さい。
 

Excel_INDEX_MATCH_4
④「0」を記入して カッコを2つ ” )) ” で式を閉じて終了

④には
基本的に完全一致の”0”を記入する。
 

以上で必要としていた単価データを
引っ張り出す事が出来たはずです。
出来なかった場合は
「②で選択したキーワード」と「③で指定した列に有るキーワード」が
完全に一致していない
事が考えられます。
具体的には、下記の図を見て確認してみてください。 
 

検索値と検索範囲内の検索キーは一致しているか?

Excel_VLOOKUP_12

例えば、上の図のように、

 ①空白がある
 ②半角、全角が一致していない
 ③言葉は一緒だが、漢字・ひらがな・カタカナで一致していない

この場合がほとんどだと思いますので、
まずは確認してみてください。
 

どうして[VLOOKUP]よりもお勧めなのか?

理由は3つあります。

1.単価表の品名部分(検索用元データのキーワード)を一番左に置かなくてOK
2.単価表(検索用元データ)の更新が楽
3.処理速度が速い

この3点です。

1に関しては
[VLOOKUP]は、その数式の性質上、検索範囲を指定する際に一番左にキーワードを配置しなければなりません。使用されたことがある方は「これは非常に厄介な事だ」と感じませんでしたか?今回の【INDEX + MATCH】では、その設定は不要です。どこに並んでいても問題ありません

Excel_INDEX_MATCH_23
図は[VLOOKUP] での1過程ですが、細かい決まり事があり不便。しかし[INDEX] + [MATCH] には特になく便利です。

2の「単価表(検索用元データ)の更新が楽」に関しては、
例えば[VLOOKUP]の場合は、図1で言えば検索範囲を当然(H4:I12)とするのではないでしょうか?それでは今後、品名が増えて単価表を更新したらどうでしょうか?検索範囲に指定した元データに、データを追加した場合、追加分は自動では反映されません。手動で数式内の範囲を(H4:I13)などと下へスライドさせる必要が出てくるのです。一方、【INDEX + MATCH】は列ごと指定しているので、検索用元データを追加更新した際も、特別に数式を更新する必要が無いのです。

Excel_VLOOKUP_15
[VLOOKUP] では、例えば上の図のように “葡萄” という品名を元データに追記した場合、元々の数式で指定した範囲を拡大させなければ、データが反映されない。

3に関しては、
他サイトで計測結果を紹介しています(比較対象はMATCH関数ですが、記事中ほどにINDEX+MATCH関数に関しても言及があります)。そちらをご参考にして頂ければ幸いです。つまりは、断然 [VLOOKUP関数] よりも処理速度も速いという事です。

以上になります。

広告