はじめに
セルに入った文字列を数式として評価する関数にINDIRECT関数があります。
INDIRECT(参照文字列, [参照形式])
という公式の使い方ではピンとこない方向けに、動き方を例題を元に理解します。
INDIRECTの使い方
INDIRECT関数は参照するセルのアドレスを文字列で指定できます。
以下の結果がどうなるか見れば理解できます。
A | B | |
---|---|---|
1 | a | =A1 |
2 | b | =INDIRECT(A1) |
3 | c | =INDIRECT("A1") |
この実行結果は以下です。
A | B | |
---|---|---|
1 | a | a |
2 | b | #REF! |
3 | c | a |
文字列として"A1"を指定するとそれが解釈されますが、A1といった指定の仕方では中のaがアドレスとして評価されるのでエラーとなります。
=INDIRECT(A1)
が
=a
と解釈されてしまいます。
以下ではどうなるでしょう、セルの中にアドレスとして解釈可能な値が入っています。
A | B | |
---|---|---|
1 | A2 | =A1 |
2 | A3 | =INDIRECT(A1) |
3 | A1 | =INDIRECT("A1") |
この実行結果は以下です。
A | B | |
---|---|---|
1 | A2 | A2 |
2 | A3 | A3 |
3 | A1 | A2 |
=INDIRECT(A1)
が
=A2
となるため「A3」が出力されます。
終わりに
ふとした時にINDIRECT関数を覚えていると、上手に値を取得できる例があります。
以上、ご参考ください。