| 「中級・特別編トップへ」 | |
| 中 級 25 |
Excelの基礎■ |
| |
|
■INDEX関数INDEX関数は、表やセル範囲から行と列で位置を指定して、セル参照を求めたり、該当位置のデータを求める関数です。 書式で表すと、INDEX(範囲,行番号,列番号,領域番号)
… セル範囲形式 次に配列形式です。引数の配列は、検索対象をセル範囲で指定します。配列定数で指定することもできます。 セル範囲形式でも配列形式でも、引数の指定には、セル参照や名前を定義して定義名を使用することができます。
◆使用例 1下図は基本を理解するための例です。
D9の例のような場合、意識的に検索形式にこだわる必要はありません。INDEX関数は入力時にどちらの形式を使うのか選択するようになっていますが、このような場合どちらでも結果は同じです。数式バーで入力すれば途中から他の形式に自由に変えることができます。 さて、セル範囲形式の戻り値は、セル参照であると説明しました。このことを、D9の戻り値で見ると、戻り値は
D5であり、その値が
18と表示されていることになります。また、D10の戻り値は
H5であり、その値が28と表示されていることになります。
◆使用例 2下図は、SUM 関数の引数にINDEX関数を入れたものです。合計範囲を取得するのに使っています。
すなわち、INDEX(C3:D7,4,2)で「D6」を返しているからこそSUM(D3:D6)となり、合計「70」が求められているわけです。
◆使用例 3 INDEX関数は、行番号と列番号から検索するため、VLOOKUPやHLOOKUP関数のように表の見出し名から検索することができません。しかし、MATCH関数をネストさせればその弱点も補うことができます。よく使われる方法でもあります。MATCH関数は、中級26で解説する予定ですが、少し紹介しておきます。
C10は、INDEX関数の行番号(引数)を求めるのにMATCH関数を使っています。VLOOKUP関数のように求めた例です。MATCH関数は、検索範囲にある検索値(データ)から、その範囲で該当する行番号や列番号を求める関数です。ここでは、B3:B6の範囲から、「佐々木」が何行目にあるのかを検索する式になっています。その結果をINDEX関数の行番号(引数)に使っているわけです。この結果、担当者「佐々木」の2月の営業金額が求められています。担当者名を変えれば、それぞれ2月の営業金額を求めることができます。VLOOKUP関数で求める例は、青枠の式です。参考に見てください。 C13は、INDEX関数の列番号(引数)を求めるのにMATCH関数を使ったものです。式は、赤枠のとおりです。HLOOKUP関数のように求めた例です。意味するところは、上記と同じです(説明省略)。HLOOKUP関数で求める式は、緑枠のとおりです。
◆使用例 4 INDEX関数では、先に説明したように、配列形式で行番号や列番号を 0で指定し、配列で入力すると、一発で指定列や行の全データを抽出することができます。
C10〜E10の式は、INDEX関数の行番号をMATCH関数で求め、列番号は
0 としています。 |