INDEX関数とMATCH関数
LARGE関数を用いて以下の表まで作成することができた。
詳細は前の記事参照。
ここで店舗名を取り出したいとする。
この表程度ならすぐにはできるが100店舗などかなり多くなってくるとなかなか難しくなる。
ここで使用するのがINDEX関数とMATCH関数である。
まずMATCH関数は検査範囲内での検査値の位置を求めるものである。
=MATCH(検査値,検査範囲,照合の種類)
というもので、指定した[検査値]が[検査範囲]の何番目にあるかを表示する。
検査値は調べたい値を指定する。検査範囲はセル範囲を指定する。
では、照合の種類とは?
これは『1』、『0』、『-1』の3つのいずれかを指定するものである。
1または省略:[検査値]以下の最大値を検索する
0:[検査値]に一致する値のみを検索する
-1:[検査値]以上の最小値を検索する
ただ、これだけではよくわからないので後ほど例を用いてみる。
次にINDEX関数である。
これは、配列の中で行と列で指定した位置の値を求めるものである。
=INDEX(配列,行番号,列番号)
とういうもので、[配列]の中から指定した[行番号]と[列番号]が交差するセルの値を取り出してくるということである。
では先ほどの表をもう一度見てみる。
これで順位1位の店舗をI3に入力したいとする。
結論から言うとこのように入力する。
そしてEnterを押してフィルハンドルを下にドラッグすれば完成
細かく見てみる。
①は[配列]であり、A3~A18までのセル範囲を指定した。つまり、店舗はこの中から選びますということである。
②は①で指定したセル範囲の先頭行から数えた行番号を指定するものであるが、今はJ3の金額がどの行にあるかを知りたいのでMATCH関数を用いて示している。これは後から考えてみる。
③は①で指定した範囲の先頭列から数えた列番号を指定するもので、1列目なので、1と記入することになる。
次にMATCH関数を見てみる。
①は検査値である。
②は①の検査値が何番目にあるかを知りたいその範囲である。
③は①に一致する値なので0となる。
以上がINDEX関数とMATCH関数である。
検査の値を取り出すという意味ではVLOOKUP関数もあるのでいずれやることにする。