Excelの関数でセルの位置や範囲をテキストで参照させます。
INDIRECT関数を使用します。
通常、セルの参照は式や関数の中に参照するセルやセル範囲を"A1"、"A1:A3"と入力されますが、それをINDIRECT関数によって、テキスト(文字列)で入力された"A1"、"A1:A3"等をセル参照にすることが出来ます。
さっそく、具体例で説明しましょう。
こんな、テストの点数の一覧表があります。
ここで、加藤泰江さんの点数"73"を他のセルで表示(参照)します。
ちなみに、"73"の入力されているセルは"C7"です。
セルC15に"=C7"と入力(または"="を入力してセルC7を選択)します。
すると、"C7"の値が参照されて、セルC15に"73"と表示されました。
同様なことを"INDIRECT関数"をつかってやってみます。
セル"B16"にテキストで"C7"と入力しておきます。
で、"C16"で、「数式」、「関数ライブラリ」、「検索/行列」から「INDIRECT」を選択します。
参照文字列:"C7"が入力されている"B16"を指定します。
参照形式:省略
すると、"C7"の"73"が参照されました。
次は、セルの範囲を参照してみます。
合計を"SUM関数"で求めます。参照範囲は"C4:C12"です。
合計"564"が求められました。
セル"B16"にテキストで"C4:C12"と入力しておきます。
その右にSUM関数のセル範囲の代わりに"INDIRECT"で"B16"を参照します。
と、合計が求められました。
次は、VLOOKUPでの応用編です。
VLOOKUP関数の参照範囲に範囲名を付けてその"名前"をINDIRECTで参照します。
国語と数学の点数が2つの表に集計されています。
加藤泰江さんの国語の点数をこの表から"VLOOKUP関数"で参照するとこうなります。
加藤泰江さんの国語の点数"73"が求められました。
数学の点数を参照したい時は、数学の点数の範囲をVLOOKUP関数で参照しなければなりません。
いちいち、範囲を設定するのは面倒なので、予め範囲に名前を付けておくことができます。
国語の表の範囲を選択して、数式バーの左隣の「名前ボックス」に"国語"と入力して「Enter」キーを押して確定します。(Enterするのを忘れないでくださいね)
同様に数学の表も"数学"と名前を付けておきます。
すると、"VLOOKUP関数"で、参照範囲には"国語"と入力するか、範囲を選択すると範囲名の"国語"が入力されます。
数学も同様に範囲名を指定します。
これで、加藤泰江さんの国語と数学の点数が、一覧表から参照されました。
ここで、INDIRECT関数で、VLOOKUP関数の参照範囲の範囲名をセル"B19"の"国語"、セル"B20"の"数学"を参照して範囲名にすることが出来ます。
これで、国語、数学の加藤泰江さんの点数が、VLOOKUP関数で面倒な参照範囲を設定しなくても自由に求めることが出来ました。
応用
2つのドロップダウンリストを連動させて絞り込んだデータを選択させてみた
関連ページ
VLOOKUPで一覧表から列方向の検索結果を求めてみた
INDEX関数で指定した行番号のセルのデータを求めてみた
OFFSET関数で関数の引数の範囲を設定してみた
関数一覧(カテゴリ別)
関数一覧(名前別)
エラー値について(#VALUE!、#DIV/0!、#NAME?、#N/A、#REF!、#NUM!、#NULL!とか)