INDEX関数、MATCH関数の使い方(Excel)

今回は行列や検索に使われる関数、INDEX関数とMATCH関数について説明します。

INDEX関数は、表の中から指定した行番号と列番号を参照して値を返す関数です。MATCH関数は指定した値が範囲の中で何番目に存在するかを返す関数です。それぞれの例を挙げて具体的に設定方法を説明します。

INDEX関数

INDEX関数は、例えば、下図右のように国語と数学の2つの成績の組み合わせで表示される評価表があるとします。

生徒一人ひとりの評価を出力したいときに、表を参照し、組み合わせが自動的に表示されるようにすると、作業が楽になります。

あらかじめ参照する表も入力しておく必要があります。その上で、参照したい組み合わせを入力して、INDEX関数で表を参照していきます。

INDEX関数を入力したいセルを選択して、関数を挿入していきます。INDEX関数は「検索/行列」に分類されています。関数を選択して「OK」ボタンをクリックします。

引数が2種類から選べますが、今回は単純な1つの表を例にしているため、「配列、行番号、列番号」を選択します。

引数の「配列」には、表の範囲を選択します。ただこの時気を付けたいのは、表の全体を選択するのではなく、参照に使う部分だけを選択します。INDEX関数では、〇列目、〇行目を指定するため、参照する範囲に余計な部分が入ると、行や列がずれるということが起こります。

今回の場合は、「I6:M10」という範囲になります。(関数をほかのセルにもコピーすることを考えると、表の範囲がずれると困るので、絶対参照にして「$I$6:$M$10」としておくことがよいでしょう。)

引数の行番号には行の方向のデータを参照するので、今回は「数学」の数値である「D3」セルを指定します。同じように、列番号には「国語」の数理である「C3」セルを指定します。

ほかのセルにもコピーしていくと、下の図のようになります。

MATCH関数

INDEX関数を利用するときに、正しいものが参照できないことがよくあります。上の例では、評価が「2」の時に2列目を参照したり、「4」の時に4行目を参照したりと、数値と参照する行や列が同じ数値のためにスムーズに参照することができました。

ただ、評価表が1から5ではなく、5から1の順で表示されていたら、まったく違う評価が参照されることになります。

この場合、MATCH関数を併用すると解決します。

MATCH関数は、検索したい値が範囲の中で何番目に位置するかを返します。

MATCH関数は「検索/行列」に分類されています。

下の図では、評価の「3」という値が「I5:M5」という範囲の中で何番目に当たるかを返すための引数を入力しています。

行方向でも列方向でも、同じように指定できます。

上のようにMATCH関数で参照する行番号と列番号を変換し、INDEX関数の中に取り入れると、正しい参照の結果が得られます。