スポンサーリンク

【Excel】セル”A1″を文字列のまま関数に指定したい!INDIRECTの使い方

オフィスソフト
オフィスソフト
この記事は約3分で読めます。

Excelで「セルA1を参照したい」と思ったとき、ふつうは =A1 のようにセルを直接指定するでしょう。
しかし、場合によっては「セルの位置(例:A1)を文字列として別セルに書いておき、その文字列に基づいて値を取得したい」というケースが出てきます。

たとえば、セルA1 に「Sheet2」と書いておき、その内容をもとに Sheet2のA1 の値を取得したい場合。このようなケースで活躍するのが、INDIRECT(インダイレクト)関数です。


スポンサーリンク

INDIRECT関数とは?

INDIRECT は、「指定された文字列をセル参照として解釈してくれる関数」です。

構文:

=INDIRECT(参照文字列, [参照形式])
  • 参照文字列:セルのアドレスを文字列として指定(例:"A1"B1 に格納された "A1"
  • 参照形式:省略または TRUE でA1形式(行は数字列は文字)、FALSE でR1C1形式(行も列も数字)

スポンサーリンク

基本の使い方:文字列「”A1″」を使ってセルA1を参照する

例1:セル B1 に “A1” と入力し、その文字列をもとに A1 の値を取得する

=INDIRECT(B1)

B1 の中身が "A1" のとき、INDIRECT(B1) は 「=A1」 と同じ意味になります。


具体的な使用方法の例

1. 参照先を動的に切り替えたい

セル A5 に 「Sheet1!A1」、A6 に 「Sheet2!A1」 といった文字列を入れて、INDIRECT でそれぞれのシートの A1を参照できます。

=INDIRECT(A5)

このようにすると、セルの中身を変えるだけで参照先を変更できるため、集計シートの自動切替などに活用できます。


2. 数式を「構成」して使う

INDIRECT を使えば、関数や数式の一部をセルの内容で組み立てることができます。

例:行や列の数値からセル参照を作る

=INDIRECT("B" & 2)   →  B2 の値を返す

ここで「2」の部分が他のセル(例:C1 に「2」)にあるとき:

=INDIRECT("B" & C1)

これで動的にセル位置をコントロールできます。



関連テクニック:文字列でシートとセルを指定する

シート名とセル位置を別々にして組み合わせることもできます。

=INDIRECT("'" & A1 & "'!" & B1)
  • A1 に Sheet2
  • B1 に C3

上記のように設定すると、Sheet2!C3のセルを参照します。


私がよくINDIRECT関数を使う状況例

上の画像のように、1月~12月でシートを分けておき、1月の売上や費用など月ごとに計算している場合、年次推移などまとめの作業のたびに各月の必要なデータを1つずつコピペするのは大変です。

アディリー君
アディリー君

例えば、1月~12月の全シートのB2にある売上額を年間推移にコピペする作業!めんどくさい!

そんな時には、年間推移シートのA列に、1月~12月の文字列を入れて、B列に以下をコピペしてください。

=INDIRECT(A2 & "!B1")

すると、「=1月!B1」と同義になるので、1月のシートのB1を取得できます!そのままオートフィルすると2月、3月…と全ての売上が取得できます。

アディリー君
アディリー君

これで簡単にグラフが作れるね!


まとめ

「セルA1を文字列として指定して使いたい」というニーズにぴったり応えてくれるのが、INDIRECT関数です。
使い方を理解すれば、シート間の動的な参照やデータの統合が格段に便利になります。

最後にポイントをおさらいしましょう:

  • "A1" のような文字列をセルとして扱いたいなら =INDIRECT("A1")
  • 他セルにある "A1" を参照するなら =INDIRECT(B1)
  • シート+セル指定も "'" & A1 & "'!" & B1 のように組み立てる
  • 動的集計・自動切替・再利用性の高い関数式に最適
  • ただし、使いすぎはパフォーマンスや保守性の低下に注意

INDIRECTをマスターして、無駄なコピペ作業からおさらばしましょう!

コメント

タイトルとURLをコピーしました