ExcelのINDIRECT関数の使い方を徹底解説!名前付き範囲・別シート参照・R1C1形式まで
ExcelのINDIRECT(間接)関数を使いこなせるようになると、他のシートから情報を取得したり、名前付き範囲を参照したり、さらには他の関数と組み合わせて非常に柔軟なツールを作れるようになります。慣れるまでには少し練習が必要ですが、使い方をマスターすれば、思っている以上に幅広い活用が可能です。
※この記事の手順は、Excel for Microsoft 365、Excel 2019、Excel 2016に対応しています。
INDIRECT関数とは?
INDIRECT関数は、文字列をセル参照に変換するための関数です。つまり、別のセルや範囲への参照をもとに情報を取得します。テキストから参照を作り出す仕組みのため、参照先の範囲でセル・行・列の変更、追加、削除が行われても、参照自体は変化しません。また、作成された参照はリアルタイムで評価されるため、常に参照元のデータに一致した正確な結果が得られます。
最初は少し分かりにくく感じるかもしれませんが、実際の例を見ながら手を動かすと理解しやすくなります。迷ったら、以下の手順に沿って試してみてください。すぐにコツをつかめるはずです。
名前付き範囲でINDIRECT関数を使う方法
Excelの名前付き範囲は、複数のデータをひとつの参照名でまとめられる便利な機能です。INDIRECT関数と組み合わせれば、そこから情報をさらに簡単に取り出せます。手順は以下の通りです。
-
名前付き範囲が設定済みのExcelファイルを開きます。この例では、さまざまな食品・飲料の売上データを扱っており、各商品の曜日別売上金額が「Burgers」など商品名の付いた名前付き範囲として登録されています。
-
名前付き範囲の名前を入力するセルを選び、そのうちの1つを入力します。ここでは「Burgers」と入力しました。必要に応じて、他の商品名や色分けも追加しておきましょう。
-
次に、INDIRECT関数の出力結果を表示したい別のセルを選択します。特定の商品(ここではBurgers)の週合計売上を求めたいので、以下の数式を入力します。
=SUM(INDIRECT(G5))
-
これはSUM関数を指定した数式で、INDIRECT関数を使ってセルG5に入力された名前付き範囲(ここでは「Burgers」)から情報を取得します。結果は3781、つまりBurgersの週間売上合計です。
この例では、セルG5の「Burgers」を他の名前付き範囲である「Lemonade」や「Desserts」に書き換えるだけで、表示される合計値も自動的に切り替わります。
複数シートをまたいでINDIRECT関数を使う方法
INDIRECT関数は、他のシートから情報を取得するときにこそ真価を発揮します。しかも、名前付き範囲を使わなくても実現できます。
-
複数のシートを含むExcelファイルを開きます。まだシートがない場合は、必要な情報を入力してあらかじめ作成しておいてください。
-
INDIRECT関数の結果を表示したいシートで、参照元のシート名を入力するセルを作成します。この例では「FoodSales」シートを参照します。
-
FoodSalesシートからBurgersの販売数の合計を取得したいので、以下のように入力します(セル範囲とシート名はご自身の環境に合わせて変更してください)。
=SUM(INDIRECT(B4&"!B4:B10"))
-
合計を求めたいのでSUM関数を指定しています。続けて、セルB4をINDIRECT関数の参照テキストとして指定します。&(アンパサンド)が関数の各要素をつなぎ、その後に引用符と感嘆符(!)、そしてデータを取得したいセル範囲であるB4~B10が続きます。
-
結果として、その週のBurger売上合計が表示されます。新しい週のデータを入れた「FoodSales2」シートを作成したら、セルB4を「FoodSales2」に書き換えるだけで、その週のBurger売上データを簡単に取得できます。
R1C1参照形式でINDIRECT関数を使う方法
データがどんどん追加されていくシートでは、参照したいセルが常に同じ位置にあるとは限りません。そんなときは、R1C1参照形式をINDIRECT関数と組み合わせると便利です。ここでも食品売上の例を使いますが、月ごとの週間売上合計を管理する、もう少し高度なワークシートを想定してください。
-
必要なデータがすべて入ったExcelファイルを開き、INDIRECT関数の出力用セルを選択します。この例では月間の食品売上合計を確認していて、「今月の最新の売上合計を知りたい」という状況です。
-
この例で使う数式は次の通りです。
=INDIRECT("R12C"&COUNTA(12:12),FALSE)
-
INDIRECT関数の中身は、引用符で囲まれた「R12」(12行目)と、列を表すCで構成されています。&がこの2つの部分をつなぎます。COUNTA関数で12行目の空白以外のセルをすべてカウントし(行全体を選択するか「12:12」と入力)、その後にカンマを付けます。最後のFALSEが、これをR1C1参照形式として扱うことを指定しています。
-
結果として、表の最後のエントリ、この場合は8102(8,102ドル)が表示されます。その後、4月の売上データを追加すれば、最新の売上数値はリアルタイムで自動更新されます。
まとめ
INDIRECT関数は、文字列をセル参照に変換できる強力な関数です。名前付き範囲との組み合わせ、別シート参照、R1C1参照形式など、目的に応じて使い分けられれば、動的な集計表やレポートの作成が格段に効率化します。なお、INDIRECT関数は再計算のたびに処理が行われる「揮発性関数」のため、大規模なブックで多用すると動作が重くなることがあります。まずは小さなサンプルデータで挙動を確かめながら、少しずつ実務に取り入れていくのがおすすめです。
-
ExcelのFIXED関数の使い方を徹底解説!数値を指定桁数のテキストに変換する方法
ExcelのFIXED関数とは? FIXED関数は、Microsoft Excelに標準搭載されている文字列(テキスト)関数の一つです。数値を指定した小数点以下の桁数で四捨五入し、テキスト形式に変換して返します。レポートや帳票など、表示形式を整えた数値を文字列として扱いたい場合に便利な関数です。 FIXED関数の書式と引数 FIXED関数の書式は =FIXED(数値, [小数点以下の桁数], [桁区切り]) です。各引数の意味は以下のとおりです。 数値(Number):四捨五入してテキストに変換したい数値を指定します。この引数は必須です。 小数点以下の桁数(Decimals):小数点の右側に
-
ExcelのRANDBETWEEN関数の使い方|指定した範囲内の乱数を簡単に生成する3つの方法
Microsoft ExcelのRANDBETWEEN(ランドビトウィーン)関数は、数学/三角関数に分類される関数の一つで、指定した2つの数値の間からランダムな整数を返します。サイコロの目のような1〜6の乱数を作りたいときや、くじ引きの番号、テストデータなどを自動生成したい場合にとても便利です。 この記事では、RANDBETWEEN関数の書式と、セルへの直接入力、「関数の挿入」ダイアログボックス、「数式」タブを使った3つの方法を、初心者の方にもわかりやすく解説します。 RANDBETWEEN関数の書式 RANDBETWEEN関数の書式は以下の通りです。 =RANDBETWEEN(最小値, 最大