【この記事の所要時間 : 約 2 分】
エクセルにて1対N(1対多)のマッチングを行う場合は、VLOOKUP関数をよく使うが、エクセルで、N対N(多対多)のマッチングの場合は、どうすればいいのだろうか?
答えは、MATCH関数である。
MATCH関数は、「探したいデータ」と「範囲」を指定すると、指定した範囲の中で、「何番目のセルにあるか」を表示してくれる関数である。
MATCH(検査値, 検査範囲, 照合の型)
・検査値(必須):検索する値、またはセル参照を指定
・検査範囲(必須):検索するセルの範囲を指定
・照合の型(省略可):0 の場合検査値に一致する値のみが検索の対象
N対N(多対多)を、分かりやすいように、A列(N行)対B列(M行)とし、A列とB列でマッチングをしてA列の中からB列にもあるものをピックアップする場合を考える。やり方の手順は以下の通りである。
1.A列(N行)全体を範囲指定し、条件付き書式を指定して、数式を使用して、書式設定するセルを決定する
2.数式には、MATCH関数を設定し、1対M(1対多)の形をとる
→(MATCH関数内の引数である検査範囲にはB列(M行)、つまりM(多)の部分を設定する)
3.マッチしたら文字の色を変えたり、背景色を変えるなどの設定をする
上記ようにすると、A列とB列でマッチングをしてA列の中からB列にあるものがあれば、3で指定したように文字の色が変わったり、背景色が変わったりする。
注意点としては、MATCH関数内の検査値には、A列(N行)の一番上のカラムを相対参照として指定することである。カラム番号を自分でA1のように入力せずに、クリックで選択すると、$A$1というように絶対参照になってしまうので、注意が必要である。
以下、参考までに。
条件付き書式(数式編)
オートフィルと相対参照
絶対参照でセルを固定!
重複データの削除
Excel関数は組み合わせて使う 検索列の左側を抽出できないVLOOKUP関数の弱点を、INDEX関数、MATCH関数で克服します