INDIRECT関数というのはあまり聞きなれない関数ではないでしょうか。
確かに殆ど使っているのを見る事はありません。
しかしこのINDIRECT関数を使いこなすことが出来れば廻りの見る目が変わってしまうこと請け合いです。
INDIRECT関数の基本
INDIRECT関数の引数は=INDIRECT(参照文字列,[参照形式])となっています。
INDIRECT関数の機能は、引数で指定した参照文字列を数式の一部として使える様にするというものです。
多分「何のことかサッパリ」ではないでしょうか。
例えば「シートをまたいで一つの表に値を表示したい」そんな時に…
例として店舗別にシート分けされている業績表からのデータを下の一覧に表示してみました。
INDIRECT関数の引数である『参照形式』はセル指定の仕方で、A1やB2という通常の指定か行番号と列番号で指定するR1C1型式にするかを指定しますが、無指定であれば通常のA1やB2の指定となります。
この一覧は『店舗』と『月』をリストで変更するとそれぞれの店の月の業績が表示される様に式を組み立てています。
ちなみに『店舗』はシートが分かれているので、普通の式ではシートを切り替えることが出来ません。
式は相当に複雑になりますが、INDIRECT関数を使うことで『店舗』の欄に表示した店名を数式内のシート名として扱う事が出来ます。
店舗名と月は別シートにリストを作成し、『データの入力規則』を使ってプルダウンリストで変更できる様にしましょう。
式の一部を解説すると最初のINDIRECTの部分はINDEX関数の引数『参照』の部分で、普通に指定した場合は INDEX(A店!$B$2:$E$13…となります。
この A店!$B$2:$E$3 の部分を文字列にしてINDIRECT関数のカッコ内に入れ込みます。
INDIRECT($B3&”!$B$2:$E$13″) 最初の$B3の部分がシート名で可変するので『店舗』欄を切り替える事で参照するシートが変わってくれます。
通常INDEX関数やMATCH関数の参照には文字列は使用できませんが、INDIRECT関数を使用することで『参照』を文字列で作ってしまいINDEX関数の中に組み込むことが出来てしまいます。
INDIRECT関数の引数は文字列なので範囲指定も『”』で囲って文字列にする必要があります。
この様にINDIRECT関数は通常では出来ないことを出来る様にしてしまえる関数なのです。
INDIRECT関数を使わなければならない場面はかなりレアかもしれませんが、何度が試してみてイザという時に使ってみてください。
ちなみにINDEX関数だけでなく例にあるMATCH関数、VLOOKUP関数などにも使うことが出来ます。
INDIRECTは関数内だけでなく更に高度な使い方が出来ますので↓で確認してみてください。『データの入力規則』の設定も紹介しています。
ここまで来たら更に上を目指したいと思いませんか?
「就職や転職にも役立つスキルを身に付けたい」「将来のために副業にチャレンジしたい」
それならやはり『プログラミングスキル』が欲しい…だったら