【INDEX関数】複数表の中から値を取得してみよう
先日、INDEX関数を紹介しました。
- 【INDEX関数】指定した行列の値を取得しよう ~参照編~
- 【INDEX関数】指定した行列の値を取得しよう ~配列編~
- 【INDEX関数】「配列型」と「参照型」のどちらを使用するべきか
- INDEX関数やMATCH関数などの「行と列の数え方」
INDEX関数は、指定した行列の値を取得できます。
INDEX関数の型は2つありました。
1つ目の型: INDEX(配列, 行番号, [列番号])
2つ目の型: INDEX(参照, 行番号,[列番号],[領域番号])
※大かっこ[]は、省略可能となっています。
2つ目の型「参照型」の[領域番号]は領域が1つ以上ある場合に使用します。
[領域番号]は、どんなメリットがあるのでしょうか。
それは、次のような、複数表から値を取得したい時です。
表≒領域、テーブル≒領域、セル範囲≒領域と捉えてください。
例えば、2013年「Mexico」の利益を取得してみたいとします。
関数式の解説
INDEX関数の「参照型」を使用します。
関数式は次のようになります。関数式の文字色と上図の範囲色が対応しています。
引数の解説
第1引数で、「売上」「利益」「原価」の3つ表(≒領域)を指定
第2引数で、指定した範囲内の行数を指定
第3引数で、指定した範囲内の列数を指定
第4引数で、[領域番号]を指定。
「売上」「利益」「原価」の3つ表(≒領域)のうち、2つ目の数表(≒領域)を指定します。
したがって、[領域番号]=2 を記述します。
詳細解説
指定した範囲内の行番号と列番号のカウント方法
指定した範囲内の行番号と列番号のカウント方法が、なぜ「5」「2」なのかを思った方は次の記事をご覧ください。
戻り値
「592670」が得られ、2013年「Mexico」の利益が取得できました。
最後に
複数表から、指定したい値を取得したケースが結構あると思います。
今まで筆者は、INDEX関数の「参照」の型を知るまでは、複数表を連結させ、ユニークキーを作成し、値を取得していました。
「参照」のINDEX関数を使用することで、表の加工無しに値を取得できるようになりました。
数表の加工が必要のないことは次のような副次メリットを生み出します。
- 作業が早い
- ミスらない
- 表が見やすい ⁼ そのまま納品・共有ができる
さらに、発展形としては、行番号と列番号を関数で取得する方法があります。
MATCH関数を使用する例です。
そのあたりは、今後どこかで取り上げていきたいと思います。