【Excel】エクセルのINDIRECT関数の使い方(VLOOKUPとの組み合わせ:範囲指定:開かずに別シート参照:リスト)初心者でもわかりやすく解説! | モアイライフ(more E life)
生成AI×マクロコーディング自動化の実践プロンプト集を販売中♪

~もうマクロのコードは自分で書く必要は無し!?生成AIにお任せで簡単にかける時代に~

→ただいま七夕大幅割引セール中♪

【Excel】エクセルのINDIRECT関数の使い方(VLOOKUPとの組み合わせ:範囲指定:開かずに別シート参照:リスト)初心者でもわかりやすく解説!

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

この記事では、エクセルの INDIRECT関数の使い方 を初心者でもわかりやすく解説します。

INDIRECT関数を使えば

• シート名を文字列として管理して参照できる

• 別シートを開かずにデータを呼び出せる

• VLOOKUPと組み合わせて範囲を動的に切り替えられる

など、集計や管理でとても役立ちます。

それでは基本の仕組みと実際の例を順番に見ていきましょう!

 

スポンサーリンク

エクセルのINDIRECT関数の使い方の基本をわかりやすく解説

まず、INDIRECT関数の基本は「セルの番地やシート名を文字列として扱える」 ことです。

普段のセル参照(=B2 など)は固定ですが、INDIRECTを使えば「どのセルを参照するか」を文字列として自由に切り替えられます。

今回は仮に1月から6月までの売上データとそれを集約する集約データをモデルを使います。例えば1月の売上データがあります。

普通なら、別のセルに =B2 と書くだけで値を参照できますが、INDIRECTを使うと「参照先のセル番地」を文字列で管理できます。

例えば、E2セルに「B2」という文字列を入力し、B3セルに =INDIRECT(E2) と書くとE5セルが持つ「B2」という文字列を参照先と認識し、結果としてB2セルの値を表示します。

例えばB5セルを「C2」に書き換えれば、B6セルは自動的にC2セルの値を取得します。

「わざわざ文字列でセル番地を管理する意味ある?」と思うかもしれませんが、別シートを参照したり範囲を切り替えたりする集計でものすごく役立ちます!

 

エクセルのINDIRECT関数の使い方【別シート参照】

INDIRECT関数の真価は「別シートをまたぐ集計」 で発揮されます。

例えば、月ごとの売上データを集約するためのシートにまとめたい場合、そして月ごとの売り上げ情報を別シートで管理しているなら

例えば、集計シートのB1セルにシート名「売上1月~6月」と入力し、B2セルに次のように入力します。
=INDIRECT(“‘” & B1 & “‘!B2”)

 

これでB1セルを「売上2月」に変えるだけで’売上2月’!B2 を自動で参照できます。

つまりシート名が変っても、計算式を全て変更する必要がなくなるというわけです。

B1セルをプルダウン形式にしておけば、効率的に検索したい値を返すことができます。

この時に注意ですが、シート名を文字列として参照する場合、空白や全角文字が含まれるとエラーになることがあります。

その場合は、シート名を ‘(シングルクオーテーション)で囲んでください。

例えば、「売上 1月」のように空白が含まれる場合は、

=INDIRECT(“‘売上 1月’!B2″)

のように ‘ ‘ で囲むことで、Excelが正しく1つのシート名として認識します。

また、この ‘ ‘ はダブルクォーテーション ” ” で文字列として結合し、& でセル参照とつなぐのがポイントです。

 

エクセルのINDIRECT関数とVLOOKUP関数を組み合わせる方法

INDIRECT関数の一番の強みはVLOOKUPと組み合わせることで最大化されます!

VLOOKUP関数は、「指定した範囲の中から、検索値に一致する行の値を取り出す関数」です。

指定した範囲から値を検索して、○行目の値などを取り出せますが、範囲が固定なので参照先を変えたい場合は数式をその都度直す必要があります。

INDIRECTを組み合わせることで、範囲を文字列でセルに持たせておき、プルダウンやヘッダーの値を変えるだけで検索先を柔軟に切り替えられるのが最大のポイントです。

これにより、複数の月別・店舗別シートをまとめて1つの集約シートに自動で反映する仕組みを作れます。

では、先ほどの集約シートを1月から6月まで増やしてみましょう。

例えば、B2セルに次の式を入れます。

=VLOOKUP($A2, INDIRECT(“‘” & B$1 & “‘!A:B”), 2, FALSE)

• $A2:検索する部署名(例:営業)
• B$1:参照するシート名(売上1月など)
• ‘!A:B’:参照する範囲
• INDIRECTで文字列を結合し、VLOOKUPで検索

この計算式を入れたセルを右方向にドラッグすると、いちいち計算式を入力することなく、各「売上○月」というシートの値を参照できるようになります。

さらに下方向にドラッグすると各部署名のデータも一括で変換することができます。

これで複数シートにまたがったデータをプルダウンだけで切り替えながら一括で集約できる自動化シートが完成します!

さらにSUM関数や網掛けなどを組み合わせるとご覧の通りの営業データができあがります。

 

まとめ

ここまで、エクセルの INDIRECT関数の基本的な仕組みや使い方について、初心者でもわかりやすいように解説してきました。

ぜひINDIRECT × VLOOKUP を業務に活かして、作業効率をアップさせてください!

コメント

スポンサーリンク
タイトルとURLをコピーしました