Excelの関数について(7) MATCH関数とINDEX関数を組み合わせた値の取得方法

今回は、ExcelのMATCH関数とINDEX関数を組み合わせた、値の取得方法をご紹介します。

通常、値の取得はVLOOKUP関数で行えばいいと思いますが、活用の幅を広げるためにもMATCH関数とINDEX関数を組み合わせて、値を取得してみましょう。

はじめに

はじめに、MATCH関数とINDEX関数の書式を復習しておきましょう。

MATCH関数の書式

=MATCH(検査値, 検査範囲, [照合の種類])

INDEX関数の書式

=INDEX(範囲, 行番号, [列番号], [領域番号])

MATCH関数は、検索値の位置を取得する関数で、INDEX関数は、行番号と列番号を指定すると行と列の交わるセルにある値を取得する関数でした。

MATCH関数とINDEX関数の使い方忘れてしまった。という方は次を見てみてください。

Excelの関数についての第5回目です。 MATCH関数は検索値の位置を返す関数になります。「検索値の位置を知ってどうするの?」となりますが、実はMATC...
Excelの関数について第6回目です。 今回はINDEX関数についてです。INDEX関数は、範囲の中にある値を取り出す関数で、指定した行と列の交わるセルの...

MATCH関数とINDEX関数を組み合わせる

さて、本題です。結論からお伝えすると、INDEX関数の引数である行番号と列番号をMATCH関数で取得することで、検索したい行と検索したい列の交わるセルの値を取得することができます。

???となると思います。

ということでひとつひとつ解説していきます。

INDEX関数とMATCH関数を組み合わせて使用した例

いつものように例を挙げてみていきましょう。(図)

図:MATCH関数とINDEX関数

各店舗の時間帯別の利用料金が書かれた表があります。この表からC8からE10の範囲において、2行2列目(B店の午後)の料金を取り出してみましょう。

=INDEX(C8:E10, 2, 2)

これで350と取得できますね。

しかし、この2行2列目という使い方はどうでしょうか。コンピュータにとってはわかりやすいかもしれませんが、人間としては、B店の午後の料金という表現の方がわかりやすいと思います。

そこで、INDEX関数の行番号と列番号をMATCH関数を使って求めようという発想です。

まずは、店を入力するためのC3セルの値がB8からB10の範囲において何番目かをMATCH関数で求めてみましょう。(※背景が黄色のC3,C4セルは入力用のセルです。)

=MATCH(C3,B8:B10,0)

上の出力結果が2となります。

このMATCH(C3,B8:B10,0)をINDEX関数の第2引数:行番号のところに入力します。

=INDEX(C8:E10,MATCH(C3,B8:B10,0),列番号)

同様に、時間帯を入力するためのC4セルの値がC7からE7の範囲において何番目かをMATCH関数で調べてみます。

=MATCH(C4,C7:E7,0)

上記のようになりますね。このMATCH(C4,C7:E7,0)をINDEX関数の列番号のところに入力します。

=INDEX(C7:E9,MATCH(C2,B7:B9,0),MATCH(C3,C6:E6,0))

これで完成です。

それでは、エクセルのC3セルとC4セルの値をいろいろ変えてみましょう。

出力のB13セルの内容が変わるはずです。

まとめ

INDEX関数の引数である行番号と列番号の部分にMATCH関数を使う。

=INDEX(範囲, MATCH関数で行番号, MATCH関数で列番号)といったイメージです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする