INDIRECT関数とは、セル参照を文字列として指定し、有効な参照を返す関数です。INDIRECT関数は一見使い道がわかりにくい関数ですが、このページではINDIRECT関数の機能だけでなく具体的な使用例についても解説します。
INDIRECT関数とは
ExcelのINDIRECT関数は、参照を文字列として指定し有効な参照を返すという特殊な関数です。まずは一番シンプルな例を見てみましょう。
「=INDIRECT(“B3”)」のようにINDIRECT関数の引数にダブルコーテーションで囲って文字列として指定しています。その結果としてB3セルにある文字列が参照され「りんご」と表示されています。次に下記のように「=INDIRECT(“B”&3)」と指定してみます。
「”B”&3」は結果として「”B3″」となるので、最初の例と同じ「りんご」が結果として返ってくることがわかります。どんな形であれ、結果として渡される文字が参照文字列としての形式をとっていれば、INDIRECT関数は有効な参照を返します。例えば下記のようにセル参照文字が入力されているセルを参照するような使い方も可能です。
D3には文字列として「B3」と入力されており、「=INDIRECT(D3)」のように入力すると、INDIRECT関数は文字列「”B3″」を有効な参照に変換し、B3に入力されている「りんご」を返します。
INDIRECT関数の構文
- 参照文字列:セル参照の文字列を指定します。直接指定する場合は「”」で囲う必要があります。参照文字列が入力されているセルへの参照としても指定可能です。
- 参照形式:省略可能です。参照形式をTRUEもしくはFALSEで指定します。TRUEは「A1形式」、FALSEは「R1C1形式」となり、省略するとTRUEが設定されます。通常ExcelではデフォルトでA1形式を採用しているので、特殊な参照形式を使っていない限りは省略しても問題ないです。
使用例1:指定されたシート名のセルを参照
シート名をプルダウンで選び、そのシート名のセルを参照する例です。「=INDIRECT(C2&”!A1″)」というように入力することで、別シートのセルを参照できます。この例ではそれぞれのシートのA1に「〇〇シートを参照しています」のように文字列が入力されており、シート名を変更するたびに参照先が変わって結果が変わります。
関連リンク
【エクセル】ドロップダウンリスト(プルダウン)の作成手順
使用例2:VLOOKUP関数への応用(2つのデータから参照)
Excelは範囲に名前をつけることができ、その名前から範囲を参照することが可能です。その性質を利用してINDIRECT関数とVLOOKUP関数を組み合わせて、2つのリストから検索することが可能です。下記例では店舗Aのリストと店舗Bのリストの範囲にそれぞれ「store_A」、「store_B」と名前をつけ、入力された店舗名にそって、参照先リストを変更しています。
範囲に名前をつける方法
範囲に名前をつけるには、①まず任意の範囲を選択し、②数式バー左のボックスに名称を入力、③Enterキーを押下して確定します。以降は指定した名前だけで参照することが可能です。
関連リンク
【エクセル】VLOOKUP関数の使い方(表から検索値に対応する値を取得)
【エクセル】名前の定義や名前ボックスの使い方(範囲に名前をつける)
使用例3:セル参照を固定
INDIRECT関数によって作成された参照はセル、行または列が挿入または削除されても変更されません。その性質を利用して、下記のように参照先を固定することが可能です。
ポイントまとめ
- INDIRECT関数によって作成された参照はセル、行または列が挿入または削除されても変更されません。
- INDIRECT関数によって作成された参照はリアルタイムで評価されます。
- 参照文字列が別のブックへの外部参照である場合、そのブックが開かれている必要があります。
- INDIRECT は揮発性関数であり、パフォーマンスの問題を引き起こす可能性があります。
おすすめの解説動画
INDIRECT関数について丁寧に解説している動画です。非常にわかりやすく解説しているのでおすすめです。
ショートカットキーの練習できます
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome