最終更新日 2021年2月3日
Contents
Index関数とMatch関数の組み合わせが使える場面
- 検索範囲の表から検索に引っかかったデータのあるセルと同じ行の他のデータを取り出したい
- でもvlookupで取り出せない位置( 取り出したいデータの列が 検索する列より左)に欲しいデータがある
例 右の表のID列に名称に合わせたIDを表示したい
Excelを使った作業でこんな場面に出くわしたことはありませんか?
そんなときはこの記事を参考にしてIndex関数とMatch関数を使いましょう!
Index関数とMatch関数を利用した書式
先程の表を例にすると、G3のセルに
=INDEX(B3:C5,MATCH(E3,C3:C5,0),1)
とすると、G3のセルにりんごのIDである1000が表示されます。
いっぺんにまとめて考えてしまうとわかりづらいので、
一度Index関数とMatch関数で分けて考えてみましょう。
Index関数の書式と使い方
内容としては、選んだ範囲の○行目、△列目のセルを表示するというものです。
再度先程の表を利用すると、G4のセルに
=INDEX(B3:C5,2,1)
と入力すると、結果はみかんのIDである、「2000」となります。
B3:C5という表の中の2行目、1列目のセルを表示しています。
ここで注意が必要なのは、A1のセルが1行目1列目ではなく、
指定した表の一番初め、今回でいうとB3のセルが1行目1列目であることです。
Index関数の利用方法はこんなところですが、
=INDEX(B3:C5,2,1) のうち、2行目という指定を数字で毎回書くわけにはいかないですよね。
そこでmatch関数と組み合わせることになります。
Match関数の書式と使い方
検索値:検索する値
検索範囲:検索するセルの範囲
照合の種類:1=以下 0=完全一致 -1=以上
使い方としては大量のデータの中から検索したいデータがどの位置にあるかを知りたいときに役立ちます。
照合の種類については下記の通りです。(今回は完全に一致するセルの位置が必要なので0を指定します)
照合の種類 | 効果 |
1 | 検査値以下の最大値を検索します。第2引数「検索範囲」を昇順に並び替えておく必要があります。 |
0 | 検査値と完全一致する最初の値を検索します。 |
-1 | 検査値以上の最小値を検索します。第2引数「検索範囲」は降順に並び替えておく必要があります。 |
書式を解説したところで、先程の表を利用すると、G5のセルに
=MATCH(E4,C3:C5,0)
と入力すると、結果は「2」となります。
E4セル(みかん)をC3;C5の範囲で検索すると、2行目にみかんがあるため、2となっています。
これだけ見ると、当たり前じゃんとなりそうですが、
ここまで理解してIndex関数とMatch関数をもう一度見てみましょう。
改めてIndex関数とMatch関数を見てみる
Index関数の実例として、
=INDEX(B3:C5,2,1) としたときにみかんのIDである2000が結果として返ってきましたが、
この何行目かを指定している「2」の部分をmatchに置き換えてみましょう。
これで何行目かを数字で指定する必要がなくなったので、
あとは各行ごとに名称に合致するIDを結果として表示してあげれば表の完成ですね。
コメント