今回は、ExcelのMATCH関数とINDEX関数を組み合わせた、値の取得方法をご紹介します。
通常、値の取得はVLOOKUP関数で行えばいいと思いますが、活用の幅を広げるためにもMATCH関数とINDEX関数を組み合わせて、値を取得してみましょう。
はじめに
はじめに、MATCH関数とINDEX関数の書式を復習しておきましょう。
MATCH関数の書式
INDEX関数の書式
MATCH関数は、検索値の位置を取得する関数で、INDEX関数は、行番号と列番号を指定すると行と列の交わるセルにある値を取得する関数でした。
MATCH関数とINDEX関数の使い方忘れてしまった。という方は次を見てみてください。


MATCH関数とINDEX関数を組み合わせる
さて、本題です。結論からお伝えすると、INDEX関数の引数である行番号と列番号をMATCH関数で取得することで、検索したい行と検索したい列の交わるセルの値を取得することができます。
???となると思います。
ということでひとつひとつ解説していきます。
INDEX関数とMATCH関数を組み合わせて使用した例
いつものように例を挙げてみていきましょう。(図)

図:MATCH関数とINDEX関数
各店舗の時間帯別の利用料金が書かれた表があります。この表からC8からE10の範囲において、2行2列目(B店の午後)の料金を取り出してみましょう。
これで350と取得できますね。
しかし、この2行2列目という使い方はどうでしょうか。コンピュータにとってはわかりやすいかもしれませんが、人間としては、B店の午後の料金という表現の方がわかりやすいと思います。
そこで、INDEX関数の行番号と列番号をMATCH関数を使って求めようという発想です。
まずは、店を入力するためのC3セルの値がB8からB10の範囲において何番目かをMATCH関数で求めてみましょう。(※背景が黄色のC3,C4セルは入力用のセルです。)
上の出力結果が2となります。
このMATCH(C3,B8:B10,0)をINDEX関数の第2引数:行番号のところに入力します。
同様に、時間帯を入力するためのC4セルの値がC7からE7の範囲において何番目かをMATCH関数で調べてみます。
上記のようになりますね。このMATCH(C4,C7:E7,0)をINDEX関数の列番号のところに入力します。
これで完成です。
それでは、エクセルのC3セルとC4セルの値をいろいろ変えてみましょう。
出力のB13セルの内容が変わるはずです。
まとめ
INDEX関数の引数である行番号と列番号の部分にMATCH関数を使う。
=INDEX(範囲, MATCH関数で行番号, MATCH関数で列番号)といったイメージです。
コメント