【スプレッドシート】INDIRECT関数の使い方

GoogleスプレッドシートのINDIRECT関数は、複数のシートにまたがるデータの集計や、連動するプルダウンの作成に便利です。この記事では、INDIRECT関数の基本的な使い方から具体的な活用方法まで、初心者にもわかりやすく解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

INDIRECT関数とは

【スプレッドシート】INDIRECT関数の使い方

INDIRECT関数は、「文字列」を「実際のセル参照」に変えることができる関数で、別シートの参照や複雑なデータ抽出に役立ちます。

たとえば、C2セルに「A4」という文字列が入っている場合、 D2セルに=INDIRECT(C2)と入力すると、"A4"という文字列を実際のA4セルとして「みかん」を返します。

もし、D2セルに=C2と入力すると、そのまま「A4」という文字列を返します。

スポンサーリンク

INDIRECT関数の基本的な使い方

【スプレッドシート】INDIRECT関数の使い方

INDIRECT関数は、文字列で指定したセル参照を、実際の参照先として値を返します。

たとえば、C列にある数字を行番号として、A列から値を抽出したい場合、数式は次のようになります。

例:=INDIRECT("A"&C2)

数式の解説

  • A"C2セルの値(例: 3)を&で結合することで、"A3"という参照文字列が作成されます。
  • INDIRECT関数は、この文字列を実際のセル番地として認識し、A3セルに入っている「ばなな」を返します。

ポイント

  • 文字列を直接指定する場合は、"A"のように二重引用符が必要です。

INDIRECT関数の引数:(セル参照の文字列, [A1 形式にする])


第2引数「参照形式」とは?

参照文字列の形式をA1形式にするか、R1C1形式にするかを、TRUEまたはFALSEで指定します。R1C1形式はほとんど使わないため、基本的に省略して問題ありません

  • TRUEまたは省略
    • 参照文字列は、A1形式(例:A1)であると見なされます。A1形式は、列をアルファベット、行を数字で指定する、最も一般的なセル表現形式です。
  • FALSE
    • 参照文字列は、R1C1形式(例:R1C1)であると見なされます。R1C1形式は、行(Row)と列(Column)を両方数字で指定する表現形式です。
スポンサーリンク

INDIRECT関数の活用例

別シートを参照する

【スプレッドシート】INDIRECT関数の使い方

INDIRECT関数の最も基本的な活用例が、別シートの参照です。この方法を使えば、オートフィルで複数のシートから簡単にデータを取得できます。

たとえば、A列にあるそれぞれのシート名に対応するC2セルのデータを取得したい場合、数式は次のようになります。

例:=INDIRECT(A2&"!C2")

数式の解説

  • A2"!C2"&で結合することで、"4月!C2"という参照文字列が作成されます。
  • INDIRECT関数は、この文字列を実際のセル番地として認識し、4月シートのC2セルに入っている「150」を返します。

ポイント

  • シート名は完全に一致させないとエラーになるため、全角・半角の違いに注意して入力します。

連動する2段階プルダウンを作成する

【スプレッドシート】INDIRECT関数の使い方

INDIRECT関数を活用すると、1つ目のプルダウンで選択した項目に応じて、2つ目以降の選択肢が絞り込まれるプルダウンを作成できます。

この方法では、2つ目のプルダウンのリスト範囲を「名前付き範囲」として設定し、INDIRECT関数を使ってその範囲を呼び出します。

詳しい解説は、「連動する2段階プルダウンの作り方」をご参照ください。

動的な範囲を集計する

【スプレッドシート】INDIRECT関数の使い方

INDIRECT関数は、SUM関数などの集計関数と組み合わせて使うことで、データの最終行を自動的に含めた集計ができます。

  • 手順1D2セルに、データの最終行の番号を取得する数式を入力します。
    • 例:=ArrayFormula(MAX((B:B<>"")*ROW(B:B)))
  • 手順2:INDIRECT関数とSUM関数を組み合わせて、動的な範囲を指定します。
    • 例:=SUM(B2:INDIRECT("B"&D2))

この数式は、「B2」から「B列の最終行」までを自動的に集計範囲とします。

タイトルとURLをコピーしました