INDEX関数(インデックス),INDIRECT関数(インダイレクト)のご紹介です。
INDEX関数
INDEX関数は、指定された行列が交差する位置にあるか、セルの参照を返してくれる関数になるんですね。
INDEX関数の書式には、2つあります。①=INDEX(配列,行番号,[列番号])、②=INDEX(参照,行番号,[列番号],[領域番号])になります。
1つ目:=INDEX(配列,行番号,[列番号])は、こちらになります。
「配列」には、 入力は必須です。セル範囲または配列定数を選択します。
「行番号」には、 入力は必須です。配列が1行のときは省略可能です。
配列内の行の位置を数値で選択します。0を選択した場合、行全体を返してくれます。
「列番号」には、 入力は任意です。第2の引数の行番号が省略されているときは必須なんです。
配列内の列の位置を数値で選択します。0を選択した場合、列全体を返してくれます。
2つ目:=INDEX(参照, 行番号, [列番号], [領域番号])は、こっちです。
「参照」には、 入力は必須です。1つまたは複数のセル参照を選択します。
離れている複数の範囲を選択する場合、()かっこで囲ってカンマで区切ります。
「行番号」には、 入力は必須です。
範囲内の行の位置を数値で選択します。0を指定した場合、行全体を返してくれます。
「列番号」には、 入力は任意です。
範囲内の列の位置を数値で選択します。0を指定した場合、列全体を返してくれます。
「領域番号」には、入力は任意です。省略すると第1引数で選択した範囲のうち1番目の範囲を使用します。
第1引数で参照した離れている複数の範囲を選択した場合、どの範囲を使用するか数値で選択します。
1つ目の=INDEX(配列, 行番号, [列番号])で見ていきましょう。
下の表で「E3」に1行目を返してみます。「E4」には3列目を返してみましょう。
「E3」には、=INDEX(A2:C2,1)と入力します。結果は「1」
次に「E4」には、=INDEX(A2:C2,3)と入力します。結果は「営業」
今度は先程の表で「E3」に表全体から2行目、3列目を返してみましょう。結果は「営業」
では今度は行列番号をセルで指定していきましょう。「G6」は1行目の2列目、「G7」は3行目の3列目と言うようにセルを参照します。
結果は、「G6」は名前、「G7」は営業が返ります。
2つ目の=INDEX(参照, 行番号, [列番号], [領域番号])で見ていきます。
複数の範囲のどの範囲の何行目、何列目のデータを取得するかを指定します。
「E2」には2つの範囲の中から2行目の3列目を返してみましょう。「F2」には対象範囲の2のなかから2行目の3列目を返します。
「E2」には=INDEX((A2:C4,A6:C8),2,3,1)と入力します。「F2」には=INDEX((A2:C4,A6:C8),2,3,2)と入力してください。
結果は「E2」には営業、「F2」には生産が返りました。
このように、2通りのINDEX関数があります。
INDIRECT関数
INDIRECT関数を使うと、参照したいセル番地やセルの範囲を文字列として指定できるんです。
なかなか使いこなしが難しいINDIRECT関数ですが、機能を単純に説明しますと、
参照文字列にA1など、セル番地を文字列として指定すると、そのセルの値を表示してくれますよね。
例1:例えば下図でB1セルにE3セルの値(¥1200)を表示したい場合は、「=INDIRECT(”E3″)」と記述すれば、B1セルに「¥1200」と表示されます。
文字列を参照の文字列に直接指定する時には、「”」(ダブルクォーテーション)で囲んで指定します。
「参照形式」は通常、A1形式を使うんですが、省略してもよい場合が殆どです。
INDIRECT関数がなぜ便利なのか分からない人も多いのですが。E3の値を表示したい時にはB1のセルに=E3と直接手入力すれば表示されますされます。が、なぜINDIRECT関数を使うのでしょうか?
代表的な活用例としては、①別シートのデータを1つに集約する②複数の表から特定の値を取り出すの2つが多いのではないでしょうか。
便利な仕事での使い方で、この2つを詳しく紹介していきます。INDIRECT関数のメリットを感じて頂きたいと思います。
別シートのデータを1つに集約することができます。
各支店別に入場者数をまとめた3枚のシートがあります。
3枚のシートにあるデータの入場者数の合計を、「3店合計」シートにまとめたい時はありませんか?INDIRECT関数なら簡単にできるんですね。下図を見てください!
「3店合計」シートの「B3」に、=INDIRECT(B2&”!B6″)と入力します!結果3店舗の合計が返されます。
例2:他の関数と併用すると便利な、Excelの関数「INDIRECT」の使い方!便利な応用です。
下図のように中間テストの結果と期末テストの結果のデータがあります。
期末の伊藤さんだけの点数を取り出してみます。VLOOKUP関数と併用して使ってみましょう。
「B3」に、=VLOOKUP(B2,INDIRECT(B1),2,FALSE)と入力しましょう。
結果は「#REF!」エラーになっちゃいました!!
そこで、中間と期末のデータに名前の定義をします。
「A7:B12」を範囲選択し、名前ボックスに「中間」と名前の定義をします。
同様に「B7:E12」には「期末」と定義します。そうすることで「B3」には「81」と点数が返ってくれます。
もっと便利に使うには、「B1」のセルには入力規則をリストで入れます。「中間、期末」で設定します。
次に「B2」のセルにも入力規則をリストで選択し、「A7:A12」で設定すると、中間か期末が選べて更に名前も選べるようになります。
INDEX関数、INDIRECT関数のまとめになります。
ExcelのINDEX関数もINDIRECT関数ですが他の関数との組み合わせ方手使うととても便利な関数です。
INDEX+MACH関数や、INDIRECT+VLOOKUP関数などと併用して利用すると簡単に導き出したいデータが得られます。
便利な使い方を覚えればExcelがこれまでより、もっと便利になるので、是非自分のものにくださいね!
これからも引き続きブログをアップして参りますので、気になる関数があったらまず、ソフトキャンパスのブログをみてくださいね!