🤖

【Excel/Googleスプレッドシート】INDIRECT関数の使い方と活用例

2025/03/12に公開

「ExcelやGoogleスプレッドシートで、動的にセルを参照したいけど、どうすればいいのか?」
「複数のシートを切り替えて参照する方法を簡単に実装したい!」

こんな悩みを抱えている方に向けて、INDIRECT関数の使い方と活用例を紹介します。

私は普段マーケティング業務でGoogleスプレッドシートを活用する機会が多いのですが、データの整理や分析をしていると、セル参照を柔軟に変更できたら便利だなと思うことがよくあります。
そんな時に役立つのがINDIRECT関数です。

この記事では、

  • INDIRECT関数の基本的な使い方
  • 具体的な活用事例
  • 使用する際の注意点

について詳しく解説していきます。

1. 対象読者

  • ExcelやGoogleスプレッドシートを日常的に使っている方
  • シートをまたいで動的な参照をしたい方
  • 関数を駆使して業務効率化を図りたい方

2. 記事を読むメリット

この記事を読むことで、

  • INDIRECT関数の基本的な使い方が理解できる
  • 実務でよく使う活用例を学べる
  • エラーの回避方法を知ることができる

ようになります。

3. 結論

INDIRECT関数を使うことで、セル参照を動的に変更し、より柔軟なデータ管理が可能になります。

具体的には、

  1. 別のシートのセルを指定して参照
  2. 行や列を動的に変更してデータを取得
  3. 範囲名を活用して可読性を向上

といったことが簡単にできるようになります。

4. 本文

4.1 INDIRECT関数の基本構文

=INDIRECT(参照文字列, [参照形式])
引数 説明
参照文字列 参照したいセルアドレス(文字列として指定)
参照形式 TRUE(A1形式)またはFALSE(R1C1形式)。省略時はTRUE

4.2 活用例

① 動的なセル参照

セルB1C3という値が入っている場合:

=INDIRECT(B1)

→ C3の値を取得。

② シート名を動的に変更

セルA1Sheet2と入力しておけば、

=INDIRECT("'" & A1 & "'!B2")

Sheet2!B2 の値を取得。

③ 範囲名を利用

範囲名「売上」をB2:B10に設定し、

=SUM(INDIRECT("売上"))

B2:B10 の合計を取得。

④ オートフィルでセル参照を固定

通常A1をコピーするとA2, A3...となるが、

=INDIRECT("A1")

→ どこにコピーしてもA1の値を取得。

4.3 注意点

  1. 参照先が削除されると#REF!エラー
  2. 大量に使うと処理速度が遅くなる
  3. 相対参照ではなく絶対参照として動作

5. まとめ

INDIRECT関数を活用すれば、セル参照を柔軟に変更し、データの管理や分析をより効率化できます。

特に以下のケースでは非常に便利です。

  • シート名を動的に切り替えたいとき
  • ユーザー入力によって参照先を変更したいとき
  • 一定の範囲名を使ってスプレッドシートを整理したいとき

ただし、大量のデータ処理に使うと動作が遅くなる点には注意が必要です。

ぜひ、実際の業務で試してみてください!

Discussion