数式が少し複雑に見えて難しく感じるINDIRECT関数です。
でもこれを使いこなすことができれば、Excelでできることの幅が大きく広がります。
INDIRECT関数で自在にセル参照ができる
INDIRECT関数はセル参照を操る関数です。
そのため、使いこなすにはセル参照の知識は不可欠です。
曖昧な人は、まずはこちらの記事からご覧ください。 セル参照は、Excelを使う上で欠かせない機能です。 言葉は分からなくてもExcelを使ったことがある人なら誰もが使っているのではないでしょうか。 そんなセル参照ですが、詳しく見ると以下に挙げているだ ... 続きを見る
セル参照とは|数式や関数を理解する為のベースの知識【Excel】
通常のセル参照では、一度入力した数式でのセルの指定は限定的です。
INDIRECT関数を使うと、セル参照時に指定するセル番地を自在に操ることができるようになります。
INDIRECT関数は文字列でセル参照ができる
INDIRECT関数は、セル参照時に指定するセル番地を文字列で表すことができる関数です。
文字列で表すと、どんなことができるのでしょうか?
最初の例のように、D3セルにA1セルの値を表示させたいとき、INDIRECT関数を使うと『=INDIRECT("A1")』となります。
このときINDIRECT関数は、A1セルを指定して参照しています。
文字列で指定ができるため、INDIRECT関数の中身は『&』を使って連結が可能です。
先程の数式を『=INDIRECT("A"&"1")』と入力したとき、INDIRECT関数の中身は「A1」になり、A1セルを指定して参照します。
それでは次に、指定したいセル番地を他のセルに入力した値から反映させてみましょう。
指定するセルの行番号を、D1セルに入力した値で操作できるようにします。
A1セルに『=INDIRECT(”A”&D1)』と入力します。
このとき、D1セルに入力された「1」が反映されて、INDIRECT関数の中身は「A1」になります。
D1セルに「2」と入力すればA2セルを、「3」と入力すればA3セルを参照するようにINDIRECT関数の参照先を操作することができる様になっています。
INDIRECT関数を活用しよう
任意のシートからセルを参照する
別のシートにあるセルを参照したいときは、『=Sheet2!A1』のように入力しました。
INDIRECT関数で、この「Sheet2」の部分を操作できるようにすれば、好きなシートからセルを指定することができます。
下図のように、「果物」シートに果物の名前が、「野菜」シートに野菜の名前が並んでいます。
Sheet1でA1セルにこのように関数が入っているとき、D1,E1セルに入力した文字列で参照先を指定できます。
VLOOKUP関数との組み合せ
他の関数との組み合せで、いよいよINDIRECT関数が本領を発揮します。
上の例から発展させて、下図のような表を作ります。
「果物」シートと「野菜」シートでそれぞれのカテゴリーの商品別の価格をまとめています。
Sheet1では、カテゴリーと商品名をもとに価格を表示させます。
ここではVLOOKUP関数の、範囲を指定するところでINDIRECT関数を使用しています。
INDIRECT関数の中身は『A2&"!A:B"』となっています。
A2を見ると「野菜」と入っているので、『A2&"!A:B"』は「"野菜"&"!A:B"」となり、ここでのINDIRECT関数は「野菜!A:B」の範囲を参照することになります。
オートフィルでコピーすれば下まで反映されます。
INDIRECT関数まとめ
私はExcelの関数をパズルを組んでいくような感覚で楽しんでいるので、このパズルの可能性を大きく広げてくれるINDIRECT関数は好きな関数1つです。
使いこなせばアイデア次第で様々な場面で活用できるので、ぜひ覚えて活用してみてください。
合わせて使いたい関数
-
ADDRESS関数の使い方|INDIRECT関数の応用に便利な関数【Excel】
ADDRESS関数は、セル番地を返してくれる関数です。 単独で使用することは稀で、INDIRECT関数やMATCH関数などと組み合わせて使います。 ADDRESS関数でセル番地を表記する ADDRES ...
続きを見る
Microsoft - Office サポート -
▼この記事を見ている人におすすめの書籍