ExcelのINDIRECT関数とは?

Microsoft Excelで使用可能な関数の一つに、「INDIRECT関数」というものが存在します。INDIRECT関数とは、セルの参照を文字列によって指定することのできる関数で、セルだけでなくシートを参照させることも可能な汎用性の高い関数です。簡単に言えば、対象のセルが指定しているデータを引用しているわけです。
INDIRECT関数は単体で使用することもありますが、MATCH関数・VLOOKUP関数・ADDRESS関数・SUM関数といった他の関数を一緒に組み合わせて使用するといったケースが多いですよ。この記事では、ExcelのINDIRECT関数の使い方をご紹介していきます。
ExcelのINDIRECT関数の使い方
INDIRECT関数の書式について
INDIRECT関数の書式は下記の通りとなります。
=INDIRECT(参照文字列,[参照形式])
最低1つの引数(Excelの関数を使用するために必要な情報)を指定します。第1引数の「参照文字列」でセル参照を表している文字列・もしくはセル参照を指定します。文字列として指定を行う際は"(ダブルクォーテーション)を使用して「"文字列"」のように囲みます。
第2引数の「参照形式」は省略可能です。参照文字列で指定されたセル参照の種類を、論理値で指定します。「TRUE」・もしくは省略で「A1形式」のセル参照を、「FALSE」で「R1C1形式」のセル参照となります。Excelにおける基本的な形式は「A1形式」で、英字で行・数字で列を表しています。「R1C1形式」はROW(行)とCOLOMN(列)の頭文字と数によって位置を表しています。基本的にマクロ(VBA)で使うのが「R1C1形式」なので、マクロを使わないのであれば「A1形式」になるため参照形式は省略しても問題ありません。
基本的な使い方

画像の例では、C3セル(結果の下)に「=INDIRECT(B3)」と入力されており、左のセルであるB3セルに入力されている「E4」をセル参照しています。
Eセルには「スーツ一式」・「ジャケット」・「スラックス」・「ワイシャツ」の4つのデータが用意されていますが、ここではE4セルを参照しているのでE4セルに入力されている「ジャケット」が出力されているわけですね。
INDIRECT関数を使用して別のシート名を参照する方法

INDIRECT関数を使用して、別のシート名を参照する方法はよく使うので、実際にどういった形でINDIRECT関数を使用するのか説明します。画像では合計用のシートとアイテムに使用している「ジャケット」・「スラックス」・「ワイシャツ」シートを作成しています。

参照文字列として、他のシートのC2セルを指定します。合計シートの他のシートを参照するセル(この例ではD3)に「=INDIRECT(C3&"!C2")」と入力することで、シート名とC2セルを文字列結合しています。今回はシート名が同じなので行っていませんが、他のシートを参照する場合は「ジャケット!C2」のようにシート名の後ろに「!」を付けてセルの指定を行いましょう。

これで「ジャケット」シートの価格を合計シートのD3セルへと反映させることができました。残りの行にもINDIRECT関数を反映させるには、セルの右下に表示されているハンドルをドラッグして下方向に引っ張り、オートフィル機能を用いて反映させましょう。

これで、「ジャケット」・「スラックス」・「ワイシャツ」に入力されている価格を「合計」シートへと反映させることができました。オートフィルが使用できるので、一つずつではなくまとめてINDIRECT関数を使用できるのが便利ですね。