INDIRECT関数は、計算式を入力したセルから見た相対位置にあるセルを参照することができる関数である。
INDIRECT関数の説明
Excelのヘルプファイルには、以下のような説明がある。
参照文字列によって指定されるセルに入力されている文字列を介して、間接的にセルを指定します。
関数の書式としては、以下のような形となる。
=INDIRECT(参照文字列,参照形式)
参照文字列: | 参照するセルの位置や範囲名を文字列で指定する。(例:”A1″、”R1C1″) |
参照形式 : | TRUE または 1 :A1形式で参照する。 FALSE または 0 :R1C1形式で参照する。 相対位置を指定するには、参照文字列にR1C1形式で指定します。 書式としては、R[相対列番号]C[相対行番号] となります。 |
メリット
- 相対位置の同じ文字列の計算式を複数の場所で使用できる
- 条件付き書式で、対象のセルと同じ行や同じ列の値を判定できる
- 文字列で指定するため、参照するセルを計算式で指定することができる
INDIRECTの例
同じ行の左隣のセル(RC[-1])の値を参照する場合
=INDIRECT("RC[-1]",FALSE)
R ・・・ 計算式を入力したセルと同じ行
C[-1] ・・・ 計算式を入力した位置から1つ左のセル
同じ列の1つ上のセル(R[-1]C)の値を参照する場合
=INDIRECT("R[-1]C",FALSE)
R[-1] ・・・ 計算式を入力した位置から1つ上のセル
C ・・・ 計算式を入力したセルと同じ列
同じ列の1行目から、合計を表示する行の1行上までの合計を求める場合
=SUM(INDIRECT("R1C",FALSE):INDIRECT("R[-1]C",FALSE))
INDIRECT(“R1C”,FALSE) ・・・ 同じ列の1行目のセル
INDIRECT(“R[-1]C”,FALSE) ・・・ 同じ列の合計表示セルの1つ上のセル
上記の範囲を:(コロン)で繋げ、SUM関数で合計値を計算している。
この場合、どこの列に指定しても、合計の計算式を変える必要がない
通常の参照方法では、参照場所が変わってしまう。
セルの削除や追加を繰り返していると、式が変わってしまう場合があり、そんな時に使用できる。
INDIRECT関数で指定したセルは、表を移動しても参照する位置がついていくため、ずれることがない。
同じ行の左隣りの値が10以上の場合にセルの色を黄色にする場合
条件付き書式の設定で、「数式を使用して、書式設定するセルを決定」を選択し、「次の数式を満たす場合に値を書式設定」の式として下記を指定する
=(INDIRECT("RC[-1]",FALSE)>=10)
カッコ内の条件が成立する場合に、指定した書式(セルの色を黄色)を反映するように指定している。
R ・・・ 計算式を入力したセルと同じ行
C[-1] ・・・ 計算式を入力した位置から1つ左のセル