Index関数とMatch関数の使い方

MS Office

最終更新日 2021年2月3日

Index関数とMatch関数の組み合わせが使える場面

  • 検索範囲の表から検索に引っかかったデータのあるセルと同じ行の他のデータを取り出したい
  • でもvlookupで取り出せない位置( 取り出したいデータの列が 検索する列より左)に欲しいデータがある

例 右の表のID列に名称に合わせたIDを表示したい

Excelを使った作業でこんな場面に出くわしたことはありませんか?
そんなときはこの記事を参考にしてIndex関数とMatch関数を使いましょう!

Index関数とMatch関数を利用した書式

=INDEX(配列, MATCH(検索値, 検索範囲, [照合の種類]) , [列番号])

先程の表を例にすると、G3のセルに

=INDEX(B3:C5,MATCH(E3,C3:C5,0),1)

とすると、G3のセルにりんごのIDである1000が表示されます。

いっぺんにまとめて考えてしまうとわかりづらいので、
一度Index関数とMatch関数で分けて考えてみましょう。

Index関数の書式と使い方

=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関数の書式と使い方

=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を結果として表示してあげれば表の完成ですね。

コメント

タイトルとURLをコピーしました