列番号と行番号が不明でも、MATCH関数とINDEX関数の組み合わせで目的のセル情報を取得

行番号と列番号が不明でも、MATCH関数とINDEX関数の組み合わせで目的のセル情報を取得することができます。

手順は以下のとおりです。

  1. MATCH関数を使って行番号と列番号をそれぞれ取り出す
  2. 取り出した行番号、列番号を使ってINDEX関数で参照するセルの位置を指定する

サンプルデータを使って説明します。

商品 \ 店舗渋谷店名古屋店大阪店福岡店
キーボード320280310290
マウス210195230220
モニター150140160155
プリンター901008595

このような集計表が、月ごとに別シートで存在するとします。

やりたいこと

月ごとの、福岡支店のモニター売上を取り出したい。
ただし、福岡店が何列目にあるのか、モニターが何行目にあるのかは、集計月ごとにバラバラである

常に「福岡店」が5列目にあり、「モニター」が4行目にあるのだとしたら、各シートの集計は比較的簡単に行えますが

福岡店が何列目にあるのか、モニターが何行目にあるのかは、集計月ごとにバラバラである

状況だと、取り出したいセルの「行番号と列番号」が不定となるため、セルの指定に工夫が必要です。

MATCH関数で「福岡店」の相対的な位置(列番号)を取得する

MATCH関数は「範囲内での相対的な位置を表す数値」を返します。

MATCH関数

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

  • 検査値
  • 検査範囲
  • 照合の種類
=MATCH("福岡店",1:1,0)
// 結果: 5

とすると、選択した一行目の中で「福岡店」と一致するセルが、選択した行範囲の左から何番目のセルか?を取得できます。

「モニター」の相対的な位置(行番号)も同様に取り出します。

=MATCH("モニター",A:A,0)
// 結果: 4

INDEX関数で「福岡店」列番号と「モニター」行番号の交点にあるセル情報を取得する

INDEX関数は、参照範囲の行と列の交点にあるデータを返します。

INDEX関数

=INDEX(参照範囲, 行番号, 列番号)

ここで、以下の考え方が役に立ちます。

  • 行番号と列番号は固定の値(数値)でなくてもよい。
  • 行番号と列番号のどちらか片方、または両方を、MATCH関数で取得できる

INDEX関数の行番号と列番号に、それぞれ「モニター」行番号と「福岡店」列番号を取得するMATCH関数を数式ごと入れ込みます。(行番号と列番号が逆にならないように注意)

=INDEX(参照範囲,MATCH("モニター",A:A,0),MATCH("福岡店",1:1,0))

これで、住所不定の「福岡店」と「モニター」の交点」にあるセル情報を取得できるようになりました!

「INDEX関数とMATCH関数の組み合わせ」は、頭の片隅においておくと便利です。参考にしてみてください!