INDIRECT関数:文字列形式で指定した位置にあるセルの参照を取得する
INDIRECT 関数は Excel で用意されている関数の一つで、文字列で C2 や R3C4 などのように位置を指定したセルへの参照を取得します。ここでは Excel における INDIRECT 関数の使い方について解説します。
※ Excel の対応バージョン : 365 web 2021 2019 2016 2013 2010 2007
(Last modified: )
INDIRECT関数の定義と使い方
INDIRECT
関数は文字列で記述された位置にあるセルへの参照を取得します。
1 番目の引数に参照先のセルの位置を文字列で指定します。セルの位置は A1
形式(例えば B10 など)または R1C1
形式(例えば R2C3)のどちらかで文字列で指定します。
2 番目の引数は 1 番目の引数で指定した文字列が A1
形式なのか R1C1
形式なのかを指定します。 省略または TRUE を指定した場合は A1
形式、 FALSE を指定した場合は R1C1
形式で書かれたものとして処理されます。
例えば 1 番目の引数に文字列で "C4" と指定した場合、 C4 セルへの参照が返されます。
=INDIRECT("C4")
また 1 番目の引数に文字列ではなくセルを指定した場合、指定したセルに入力されているセルの位置を表す文字列が示すセルへの参照が返されます。例えば C8 セルに文字列で "C5" と入力されているときに C9 セルに次のように数式を入力します。
=INDIRECT(C8)
C8 セルに入力されている "C5" が引数に指定されたことになり、結果として C5 セルに入力されている値を取得して表示します。
C8 セルに入力されている値を "C5" から "C3" に変更すると、 C9 セルに表示される値も C3 セルに入力されている値に変更されます。
このように INDIRECT
関数を使用することで、関数を書き換えなくても関数が参照するセルを変更することができます。
セルの位置をR1C1形式で指定する
Excel ではセルの位置を指定する場合に A1
形式と R1C1
形式が用意されています。 A1
形式では行数を数値で指定し、列数を A,B,.. とアルファベットで指定します。それに対して R1C1
形式では行数を R
のあとに数値で指定し、列数を C
のあとに数値で指定します。
例えば A1
形式で C2 セルは、 R1C1
形式では R[2]C[3] (相対参照の場合、絶対参照の場合は R2C3 ) と記述します。
なお Excel はデフォルトで A1
形式で表示されていますが、 Excel のオプション設定画面で「数式」の項目の中にある「R1C1参照形式を使用する」にチェックをすることで R1C1
形式に変更することができます。
セルの位置を文字列で表す場合、 Excel そのものを R1C1
形式に変更しておく必要はありません。セルの位置を R1C1
形式で文字列で指定し、 2 番目の引数に FALSE を指定してください。
例えば C8 セルに "R4C3" と入力した上で、 C9 セルに次のように 2 番目の引数に FALSE を指定してみます。
=INDIRECT(C8,FALSE)
"R4C3" ( A1
形式だと C4 セル)のセルに入力されている値を取得し表示します。
セル範囲に付けた名前で指定する
Excel ではセル範囲に対して名前を付けることができますが、 INDIRECT
関数の引数にセル範囲に付けた名前を文字列で指定することで、対応するセル範囲への参照を取得することができます。
例えば次のように Excel にデータを入力したとします。
C3:E3 のセル範囲に対して "算数" という名前を付けます。 C3:E3 を選択した上で、画面左上に "算数" と入力してください。
また C4:E4 のセル範囲に対して "国語" という名前を付けます。 C4:E4 を選択した上で、画面左上に "国語" と入力してください。
では C6 セルに "算数" と入力した上で C7 セルから E7 セルを選択します。そして数式バーに次のように数式を入力してください。
=INDIRECT(C6)
Enter
キーではなく Ctrl
+ Shift
+ Enter
キーを押してください。 "算数" と名前が付けられたセル範囲を配列数式として取得し表示します。
C6 セルの値を "国語" に変更すると "国語" と名前が付けられたセル範囲の値を取得して表示します。
-- --
Excel における INDIRECT 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。