INDEX関数の深掘り -「参照形式」が「配列形式」を包含する理由
記事メンテナンス中です。しばらくお待ちください。
下記2記事で、INDEX関数には2つの構文があり、
「配列」と「参照」の2つがあることをお伝えしました。
INDEX関数の構文 -指定した行列の値を取得しよう- 配列形式編 – DL可
INDEX関数の構文 -指定した行列の値を取得しよう- 参照形式編 – DL可
本記事では、
- 「配列」と「参照」の関数式の相違点は何か
- 「配列」と「参照」のどちらを使用するべきか
を触れていきます。
目次
「配列」と「参照」の関数式の相違点は何か
領域が1つ場合、両者の関数式は同じです。
しかし、
領域が2つ以上の場合、2つの構文には違いが生じます。
領域とは何か
領域は、データが存在する特定のセルやセルの範囲を指します。
本記事は「配列形式」「参照形式」の違いに関する言及のため、
領域に関する内容は、
『【INDEX関数】複数表の中から値を取得してみよう』
をご拝読ください。
INDEX関数の構文
INDEX関数の構文を復習します。
配列形式:
=INDEX(配列, 行番号, 列番号)
参照形式:
=INDEX(領域, 行番号, 列番号, [領域番号]) ※[]は省略可能です
領域が1つの場合
領域が1つであれば、2つ目の構文の[領域番号]は省略できるため、関数式は同じになります。
配列形式:
=INDEX(配列, 行番号, 列番号)
参照形式:
=INDEX(領域, 行番号, 列番号, [領域番号]) ※[]は省略可能。省略時は1となる
例えば、下図のようになり、2つの構文の関数式は同じになります。
領域2つの場合
しかし、もし領域が2つ以上ある場合、必ず[領域番号]を指定しなければなりません。
そのため、1つ目の構文は使用できず、2つ目の構文を使う必要があります。
つまり、参照形式しか使えません。
参照形式:
=INDEX(領域, 行番号, 列番号, [領域番号]) ※[]は省略可能です
例えば、下図のようになり、2つの構文の関数式は異なります。
領域が2つあるので、
どちらの領域番号を指定する必要があるためです。
「配列」と「参照」のどちらを使用するべきか
「配列形式」「参照形式」のどちらを使用するべきかと言えば、「参照形式」です。
なぜならな、2つ目の型「参照」は、領域が1つ、または、2つ以上の両方に対応しているからです。
領域が1つしかない場合、領域番号を1としてすればOKだからです(省略も可)
フォローアップ
INDEX関数の構文区別と失念防止のヒント
2つの構文があると、どちらがどちらか分かりにくくなります。
分かりやすくするために、2つの構文の第1引数に注目しましょう。
第1引数の「配列」だから、配列形式。第1引数の「参照」だから、参照形式と覚えれば、
どちらがどちらかが簡単に理解できます。
最後に
INDEX関数は、「配列形式」と「参照形式」の2つの構文が存在します。
「参照形式」の構文を使用することがおすすめされます。
なぜなら、「参照形式」は「配列形式」を包含しており、より柔軟で強力な使い方ができるからです。
「参照形式」の構文では、[領域番号]を指定して引数として使うことができ、これにより簡単にデータを操作できます。
領域番号を指定することで、必要なデータを特定して取得することができます。
以上、ご拝読ありがとうございました。
解答付きサンプルデータ
解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。
参考記事:
Excel関数を操作するための基本概念です。基本概念を理解すると、各関数の理解がより深まります。
構文に関する記事
Excel関数の引数と戻り値は何だっけ?という時に、役立つ記事です。
ダイアログボックスの使い方に関する記事
Excel関数名は何だっけ?VLOOKUP関数の使い方は何だっけ?という時に、ダイアログボックスを使うと便利です。
下記はそのダイアログボックスに関する記事です。
参照形式に関する記事
関数式をコピーする時はどうしたらいい? $マークは、どう付けたらいいだろう?
といった悩みをお持ちの方は以下をご覧ください。