エクセル入門
INDIRECT関数(参照文字列で間接的にセルを指定)

Excelの初心者向け入門解説
最終更新日:2021-06-24

INDIRECT関数(参照文字列で間接的にセルを指定)


INDIRECT関数は、指定される文字列への参照を返します。
参照文字列によって指定されるセルに入力されている文字列を介して、間接的なセルの指定を行います。
参照文字列で指定されるセル参照を返しますが、セル参照はすぐに計算され、結果としてセルの内容が表示されます。


INDIRECT関数の書式

INDIRECT(参照文字列[,参照形式])

参照文字列

参照として定義されている名前が入力されているセルへの参照、または文字列としてのセルへの参照を指定します。

参照文字列に適切なセル参照を指定していないと、エラー値 #REF! が返されます。
参照文字列で他のブックを参照している場合(外部参照)、そのブックを開いておく必要があります。
参照先のブックを開いていない場合、INDIRECT 関数は、エラー値 #REF! を返します。

参照形式

参照文字列で指定されたセルに含まれるセル参照の種類を指定します。

TRUE(1)を指定するか省略
参照文字列には A1 形式のセル参照が入力されていると見なされます。
FALSE(0)を指定
参照文字列には R1C1 形式のセル参照が入力されていると見なされます。

INDIRECT関数の使用例

INDIRECT関数の単純な使用例

A1セルに"東京都"、A2セルに"A1"と入っていたとして

=INDIRECT(A2)
この結果は、「東京都」となります。

エクセル Excel INDIRECT関数

この数式を順にみていくと、

=INDIRECT(A2)

=INDIRECT("A1")

=A1

このような単純な使用例はあまりないでしょう。

INDIRECT関数の他シート参照例

実際に多い使用場面として良くあるのは、シート名をセル値で可変参照させる場合でしょう。
A1セルに"Sheet2"、A2セルに"A1"と入っているとします。

=INDIRECT(A1&"!"&A2)
この結果は、Sheet2のA1セルの値が出力されます。

エクセル Excel INDIRECT関数

この数式を順にみていくと、

=INDIRECT(A1&"!"&A2)

=INDIRECT("SHeet2"&"!"&"A1")

=INDIRECT("SHeet2!A1")

=Sheet2!A1

INDIRECT関数の範囲指定例

セル範囲を指定する参照文字列をINDIRECTに指定することで範囲を可変に参照することができます。
A列に数値が入っていて、C1セルにA2、C2セルにA5と入っているとします。

=SUM(INDIRECT(C1&":" &C2))
この結果は、A2~A5の合計になります。

エクセル Excel INDIRECT関数

この数式を順にみていくと、

=SUM(INDIRECT(C1&":" &C2))

=SUM(INDIRECT("A2"&":" &"A5"))

=SUM(INDIRECT("A2:A5"))

=SUM(A2:A5)

もちろん、A2セルとA5セルの文字列によって合計値は変化します。


Officeサポート INDIRECT関数


ワークシート関数一覧
・文字列関数 ・日付と時刻の関数 ・情報関数 ・論理関数 ・検索/行列関数 ・数学/三角関数 ・統計関数 ・財務関数 ・エンジニアリング関数 ・データベース関数 ・アドイン/オートメーション ・キューブ ・Microsoft Office のサポート

ワークシート関数の一覧(2010以降)
・Excel2010で追加されたワークシート関数 ・Excel2013で追加されたワークシート関数 ・Excel2016/Excel2019で追加されたワークシート関数 ・Excel2021で追加されたワークシート関数 ・Excel2021より後の365で追加されたワークシート関数 ・Microsoft「Office のサポート」



同じテーマ「エクセル入門」の記事

MATCH関数(範囲から値を検索し一致する位置)
INDEX関数(範囲から指定されたセル)
OFFSET関数(行数と列数シフトした位置のセル範囲)
INDIRECT関数(参照文字列で間接的にセルを指定)
EDATE関数(月数だけ前後の日付)
EOMONTH関数(月数だけ前後の月の最終日)
WEEKDAY関数(曜日に変換)
WEEKNUM関数(その年の何週目)
COUNTBLANK(空白セルの個数)
AVERAGE関数(引数の平均値)
AVERAGEIF関数(検索条件に一致する平均値)


新着記事NEW ・・・新着記事一覧を見る

シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)
シート関数のCOUNTIFS,SUMIFS,MAXIFSと同じ処理|Power Query(M言語)入門(2023-02-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ