Excel(エクセル)でよく使われるINDIRECT関数の使い方を紹介します。
INDIRECT関数はセルや他のシートを参照できるため、VLOOKUP関数やMATCH関数、ADDRESS関数やSUM関数など様々な関数と組み合わせて使用すると効果的です。
ここでは別シートの参照方法といったINDIRECT関数単体の使い方から、他の関数と組み合わせた実践的な方法まで幅広く解説していきます。
目次
ExcelのINDIRECT関数とは
Excel(エクセル)のINDIRECT関数とは、指定される文字列への参照を返す関数です。
例えば他のセルに記載されているデータがある場合、INDIRECT関数でセル番地を指定すればそのセル番地にある文字列と同じ文字列を表示させることが可能です。
参照したいデータがB2にある場合「=INDIRECT(”B2”)」と入力すると、関数を入力したセルにB2の値と同じ値が表示されます。
INDIRECT関数の書式
Excel(エクセル)のINDIRECT関数の書式は「=INDIRECT(参照文字列,[参照形式])」となり、引数は2つです。引数の具体的な指定方法を見ていきましょう。
- 第1引数:参照文字列
- 第2引数:参照形式
第1引数:参照文字列
第1引数は必須で、参照文字列を記載します。セル参照を表す文字列またはセル参照を指定します。
直接セル参照を表す場合など、文字列として指定する場合は「”」(ダブルクオテーション)で囲むのを忘れないようにしましょう。
第2引数:参照形式
第2引数は参照形式で、省略することができます。参照文字列で指定されたセル参照の種類を、論理値で指定します。
指定の仕方は次のようになります。
- TRUE、または省略した場合は「A1形式」のセル参照
- FALSEを指定した場合は「R1C1形式」のセル参照
「R1C1形式」はマクロ(VBA)を使う際によく用いられる形式ですので、通常は「A1形」としておけばOKです。
INDIRECT関数の使い方【活用例】
Excel(エクセル)のINDIRECT関数を使った活用方法として、先ほどよりも汎用性の高い使い方を紹介します。
引数に直接参照したいセル番地を入力するのではなく、参照したいセル番地が記載されているセルをセル参照します。
B11セルの中身を書き換えるだけでC11の値も自動で変更されるため、より効率的に情報を更新することが可能です。
INDIRECT関数で別シートを参照する方法
Excel(エクセル)のINDIRECT関数を使えば、別シートにある値を参照することもできます。
ここでは、ある小学校における学年別の生徒数2019年から2022年までの情報をINDIRECT関数で参照し、1つのシートにまとめます。
先ほどと同様に、引数にセル参照を利用することも可能です。近くのセルに「’2019年’!C9」と入力して、INDIRECT関数でその入力したセルを参照すればOKです。
INDIRECT関数で別シート参照時にエラーがでる原因
別シートの値をINDIRECT関数を使って参照した時に、「#REF!」というエラーがでることがあります。原因として考えられるのは、別シートのセルを正しく指定できていないことです。
特に、シート名に特殊な文字が含まれているとエラーが起こりやすくなります。回避方法としてはシート名を「’」(シングルクォーテーション)で囲む方法があります。
先ほど紹介した「’2019年’!C9」のように「’シート名’」「!」「セル番地」をつなげればOKです。
また効率的に別シートのセルを参照するために、シート名をセルに入力して「&」を用いてアドレスを指定することがあります。この時に結合方法を間違えたり「”」が不足していたりすることで正しいアドレスになっていないこともよくあります。
エラーがなかなか解消しない場合は、引数に直接アドレスを指定するなどして指定アドレスが間違っていないか確認してみましょう。
INDIRECT関数と他の関数の組み合わせ方
Excel(エクセル)のINDIRECT関数は他のセルの文字列を参照できるため、他の関数と組み合わせて使用するとユニークなシステムを作成することができます。それぞれの組み合わせ方を具体的に紹介していきます。
- INDIRECT関数とVLOOKUP関数の組み合わせ
- INDIRECT関数とMATCH関数の組み合わせ
- INDIRECT関数とADDRESS関数の組み合わせ
- INDIRECT関数とSUM関数の組み合わせ
INDIRECT関数とVLOOKUP関数の組み合わせ
INDIRECT関数は、他の関数と組み合わせるとより効果的な仕組みをつくることができます。まずはINDIRECT関数とVLOOKUP関数の組み合わせ方を紹介します。
データの範囲として、先ほど名前の定義で作成した範囲を参照させるためにINDIRECT関数を用いています。
異なるシートごとにまとめられた範囲でも同様にINDIRECT関数で参照することが可能です。
INDIRECT関数とMATCH関数の組み合わせ
次は、指定した項目を検索してその位置を返すMATCH関数との組み合わせ方を説明します。
MATCH関数の第1引数には検索したい値を、第2引数にはデータの範囲を指定して範囲内での位置を取得します。行番号に変換するために+1するのを忘れないようにしましょう。
INDIRECT関数とADDRESS関数の組み合わせ
次は、指定された行番号と列番号からセル番地を文字列として作成するADDRESS関数とINDIRECT関数を組み合わせてデータを抽出する方法を紹介します。
表中のデータを、数字のみの取り扱いで検索することができるため、マクロなどのプログラムとの相性がよい方法となります。
INDIRECT関数とSUM関数の組み合わせ
最後に、範囲内にある数字の合計を求めるSUM関数と組み合わせて、カテゴリー別の集計を効率よく行う方法を紹介します。
各カテゴリーがそれぞれ別のシートにまとまっている場合や、すでにデータ範囲に名前が定義されている場合、この方法を使えばブック内に散らばったデータを効率よく集計することができます。
INDIRECT関数の使い方をおさらい
Excel(エクセル)のINDIRECT関数について、書式や単体での基本的な使い方から他の関数と組み合わせた応用的なテクニックを紹介しました。
今回併せて紹介した「VLOOKUP関数」「MATCH関数」「ADDRESS関数」「SUM関数」は、INDIRECT関数と組み合わせるとユニークな使い方ができます。ぜひこの記事を参考に、具体的な組み合わせ方を覚えておきましょう。
今話題のリスキリングは手元から!
リテラアップアプリのご利用について、法人の方は下記フォームよりお問い合わせください。
(Excel,WordなどOffice製品やPC関連の技術的な質問にはお答えできかねます。ご了承ご了承ください。)