
INDIRECT関数は指定した文字列への参照を返す関数だ。INDIRECT関数の引数にセル番号を文字列として指定することで、セルに入力された文字列や数値が出力される。
目次
INDIRECT関数の使い方がよく分からないという方もいるのではないだろうか。INDIRECT関数は指定したセル番号に入力された値を取得できる関数だ。
本記事ではINDIRECT関数の使い方について解説する。INDIRECT関数とMATCH関数を組み合わせる方法についてもまとめた。
INDIRECT関数は?
INDIRECT関数とは、指定した文字列への参照を返す関数である。たとえばINDIRECT関数に「A1」を指定した場合、A1に入力されている文字列や数値を返すことができる。
INDIRECT関数を使いこなせるようになれば、Excelで作成した表からデータを素早く抽出することが可能になる。
INDIRECT関数の書式
まず、INDIRECT関数の書式について解説する。INDIRECT関数には次の2つの引数を指定する。
- 参照文字列
- 参照形式
ひとつひとつの引数の意味について詳しくみていこう。
■1.参照文字列
1つ目の引数は参照文字列である。参照文字列には、INDIRECT関数によって参照したいセル番号を入力する。こちらの引数は必ず指定しないといけない。
たとえば、A1に入力されている値を参照したい場合は「=INDIRECT(“A1”)」とする。セル番号には必ず「””」を付ける必要がある。「=INDIRECT(A1)」だとエラーが出てしまう。
また、他のブックを参照することも可能である。その場合ブックを開いておく必要がある。
■2.参照形式
2つ目の引数は参照形式である。参照形式には、TRUEもしくはFALSEを指定する、のが基本となる。
TRUEを指定する、あるいは引数を省略した場合、通常通り参照文字列が返される。FALSEを指定した場合、R1C1スタイルでのセル番号指定とみなして、参照文字列を返す。
基本的にはこちらの引数は指定することの方が少ない。
INDIRECT関数の使い方
具体的なINDIRECT関数の使い方についてみていこう。
次の3つをINDIRECT関数を使って行うやり方を解説する。
- セルの値を返す
- 書式変更されたセルの値を返す
- セル番号を返す
■1.セルの値を返す
まず、INDIRECT関数の基本的な使い方を解説する。
以下では、「=INDIRECT(“A2”)」と指定している。「=INDIRECT(“A2”)」と指定すると、A2に入力された文字列や数値が出力される。
実行すると「10」と表示された。A2の値が参照されていることが分かる。
なお、「=INDIRECT(A2)」にしてしまうとエラーが発生するので注意だ。
■2.書式変更されたセルの値を返す
続いて、書式変更されたセルの値を参照する場合をみてみよう。
以下の画像のA2は、書式変更によって「10」を「¥10」と表示させている。このとき、「=INDIRECT(“A2”)」としてA2の値を参照しようとしたらどうなるか。
実行すると「¥10」ではなく「10」と表示された。INDIRECTは書式変更されたとしても値を参照する、ということが分かる。
■3.セル番号を返す
最後に、INDIRECT関数の少し特殊な例をみていく。
「=INDIRECT(“B”&A2)」という式を見てみよう。ここでの”B”はセル列を表す文字列で、その後ろにA2セルの値を連結している。例えばA2セルに「2」が入力されていれば、”B”と「2」が連結され、”B2″という文字列が生成される。
この”B2″という文字列がINDIRECT関数に渡されると、関数はこれをセル参照として解釈し、B2セルの値を返すのである
実行すると、B2の値である「3」が表示される。