【Excel】INDIRECT関数の使い方を完全攻略!実務で役立つシート参照や連動プルダウンを解説

Excelを使っていると、「隣のシートのデータを自動で持ってきたい」「セルの値によって参照先を切り替えたい」と思うことはありませんか?

そんな時に便利な関数がINDIRECT(インダイレクト)関数です。

この記事で分かること
  • INDIRECT関数の基本的な仕組みと「文字列を参照に変える」仕組み
  • 複数のシートからデータを一瞬で集計するテクニック
  • 「都道府県」を選ぶと「市区町村」が出るような連動プルダウンの作り方
  • 実務でよくある「#REF!エラー」の正体と解決策
  • 動作が重くならないための賢い使い分け

【5分で理解】INDIRECT関数の要点まとめ

忙しい方のために、この記事の大事なポイントを先にまとめました。

  • 役割
    セルに入力された「文字」を、Excelが認識できる「セルの住所(参照)」に変換します。
  • 最大のメリット
    数式を書き換えずに、セルの値を変えるだけで参照先を自由自在に操作できます。
  • 主な活用法
    シート名を参照して複数シートを集計したり、2段構えのプルダウン(ドロップダウンリスト)を作成したりするのに最適です。
  • 注意点
    多用しすぎると動作が少し重くなる「揮発性関数」という性質を持っています。

まずはこの全体像をイメージしながら、詳細を見ていきましょう。


INDIRECT関数とは?仕組みと基本ルール

INDIRECT関数の役割:文字列を「参照」に変える魔法

通常、Excelで他のセルを参照するときは「=C1」のように入力しますよね。これは「A1という場所にあるデータを見てね」という命令です。

INDIRECT関数は、この「C1」という住所自体を、別のセルに書いてある「文字」から作り出すことができます。

例えば、C1セルに「B1」という文字が入っていたら、「=INDIRECT(C1)」と書くだけで、実質的にB1セルの値を表示してくれるのです。

「直接書けばいいじゃない」と思うかもしれませんが、この「ワンクッション置く」ことが、自動化において非常に重要な役割を果たします。

基本の構文と引数(参照文字列・参照形式)の解説

使い方はとてもシンプルです。

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

  • 参照文字列:参照したいセル番地や名前を「文字」として指定します。
  • 参照形式(省略可):真(TRUE)なら「A1形式」、偽(FALSE)なら「R1C1形式」になります。基本的には省略してOK(A1形式)です。

なぜ「直接入力」ではなく「INDIRECT」を使うのか?

普通の参照(=A1)だと、参照先のセルを削除したり移動したりすると、数式がエラーになったり勝手に書き換わったりしてしまいます。

しかし、INDIRECT関数は「文字」として場所を指定しているため、レイアウトが多少変わっても「この名前の場所を見る」というルールが崩れにくいという強みがあります。また、計算式の中で「シート名」を動的に切り替えられるのは、この関数ならではの特権です。


実務で役立つ!INDIRECT関数の基本活用シーン

別セルの値を参照先として指定する方法

例えば、A1セルに「100」が入っていて、B1セルに「A1」という文字が入っているとします。

このとき、別のセルで「=INDIRECT(B1)」と入力すると、結果は「100」になります。

B1に書いてある『A1』という場所を見に行ってね」という指示が通ったことになります。

文字列を結合して動的なセル番地を作るテクニック

文字を繋げる「&(アンパサンド)」と組み合わせると、さらに便利になります。

例えば、「=INDIRECT(“A” & C1)」という数式を作ります。

C1セルに「5」と入れれば「A5」を参照し、「10」と入れれば「A10」を参照してくれます。行番号だけを別のセルでコントロールできるようになるのです。

C1セルに”5″が入っている場合

C1セルに”10″が入っている場合

【応用編1】複数シートのデータを1箇所に集約する

実務で一番「やっててよかった!」と思えるのが、このシート参照の自動化です。

シート名をセルから参照して切り替える方法

「4月」「5月」「6月」と分かれたシートがあり、それぞれのB5セルにある売上合計を1つのまとめシートに集約したい場合、通常は1つずつ数式を打つ必要があります。

しかし、INDIRECT関数を使えば、セルに書いた「4月」という文字をそのままシート名として使えます。

=INDIRECT(A2 & “!B5”)

(※A2セルに「4月」と入力されている場合)

でんちゃん
でんちゃん

このように、左側のセルにシート名を並べておくだけで、数式をコピーするだけで全シートの集計が完了します。

シート名にスペースや記号が含まれる場合の注意点

「2026年 4月」のように、シート名にスペースや数字が含まれる場合、Excelのルールでシングルクォーテーション(’)で囲む必要があります。これを数式に組み込むと少し複雑に見えますが、以下の形が「お作法」です。

=INDIRECT(“‘” & A2 & “‘!B5”)

最初は難しく感じるかもしれませんが、「おまじない」だと思ってテンプレート化しておくと安心です。


【応用編2】連動するドロップダウンリスト(プルダウン)の作成

部署を選ぶと、その部署に所属するメンバーだけが次のリストに出てくる」という仕組み、憧れますよね。これもINDIRECT関数の得意分野です。

名前の定義とINDIRECT関数を組み合わせる手順

  1. まず、メンバーのリストに「営業部」「総務部」といった名前を定義します(範囲を選択して、名前ボックスに入力)。
  2. 1つ目のプルダウンで「部署名」を選べるようにします。
  3. 2つ目のプルダウンの「入力規則」の設定で、元の値に「=INDIRECT(1つ目のセルの場所)」と入力します。

これだけで、1つ目で選んだ文字(部署名)が、そのまま「定義した範囲の名前」として認識され、リストが動的に切り替わります。

Excelで2段階プルダウンを連動させる方法|INDIRECT関数でミスをゼロにする究極ガイド

3段階以上の多階層プルダウンへの拡張方法

この仕組みを応用すれば、都道府県→市区町村→町名、といった3段階以上の連動も可能です。設定は少し手間がかかりますが、入力ミスを防ぐ効果は絶大です。

「実際に導入したら、現場の入力ミスが50%減った」という声も多く聞かれる、非常に満足度の高いテクニックです。


知らないと危険!INDIRECT関数の注意点とデメリット

とても便利なINDIRECT関数ですが、実は「使いすぎ注意」な側面もあります。

揮発性関数(Volatile Function)による動作遅延のリスク

INDIRECT関数は「揮発性関数」と呼ばれます。これは、Excel内のどこか1箇所でもセルが更新されるたびに、この関数も再計算されるという性質です。

データ量が多いブックで何千個もこの関数を使うと、動作が非常に重くなることがあります。「実際に、数万行のデータで使ったらファイルを開くのに30秒以上かかるようになった」という事例もあります。

デメリットを補うための具体的な数字と対策

以下の表に、INDIRECT関数を使う際のリスクと対策をまとめました。

項目影響と詳細対策・代替案
再計算の頻度セルを1つ打つたびに計算が走る必要な箇所に絞って使用する
ファイルサイズ数式自体は短いが、メモリを消費しやすい計算結果を「値貼り付け」で固定する
外部参照参照先のファイルが閉じているとエラーになる参照先ファイルも同時に開いておく
代替関数の検討INDEX関数などの方が動作は軽い構造的に可能ならINDEX/OFFSETを検討

「〜という声が多い」と言われる通り、特に大規模なプロジェクト管理表などでは、後半になるにつれて動作の重さが課題になりがちです。ここぞという場面でスマートに使うのがプロの技ですね。


よくあるエラーと解決策(トラブルシューティング)

#REF!エラーが出る4つの主な原因

INDIRECT関数で最も遭遇するのが「#REF!(参照不可)」エラーです。

  1. 参照先のシート名が間違っている:一文字でも違うとダメです(全角・半角の差など)。
  2. シングルクォーテーションの不足:シート名に数字やスペースがある場合です。
  3. 参照先のブックが閉じている:他のファイルを参照している場合、そのファイルを開かないとエラーになります。
  4. セル範囲が削除された:文字として指定していても、その範囲自体が消えてしまうと参照できません。

期待通りの数値が返ってこない時のデバッグ手法

もしエラーが出たら、数式の中の「“文字” & A1」などの部分だけを一度外に取り出して、どんな「文字列」ができあがっているか確認してみてください。それが正しいセル住所になっていなければ、そこを修正するだけで解決します。


まとめ

INDIRECT関数は、一見すると「文字をいじるだけの地味な関数」に見えるかもしれません。しかし、その実体はExcelの動的な操作を支える強力なエンジンです。

  • シート名から自動でデータを集計する
  • スマートな連動プルダウンを作る
  • 手入力の手間を減らし、ミスを防ぐ

これらを実現することで、あなたの業務効率は飛躍的に高まります。最初は「”」や「&」の使い方に戸惑うかもしれませんが、一度テンプレートを作ってしまえば一生モノのスキルになります。

まずは、小さな集計表のシート参照から始めてみませんか?あなたのExcelライフが、もっと楽しく、もっと自由になることを応援しています!

この記事を書いた人
でんちゃん

IT企業で人事として6年、200名以上の面接を担当。基本情報技術者資格保有。IT転職・Excel・子育て情報を発信中。

【経歴】
・IT企業で採用・教育・労務・人事制度を6年経験
・200名以上のIT転職者を面接
・基本情報技術者資格保有
・Excelを使ったデータ分析が得意
・一児の父として子育て奮闘中

【このブログについて】
「IT転職で損してほしくない」という想いからスタート。採用する側のリアルな視点でIT転職・Office365・子育てと仕事の両立について発信しています。

でんちゃんをフォローする
office365
シェアする
でんちゃんをフォローする

コメント

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