エクセルのINDIRECT関数について、紹介します。INDIRECT関数とは、セルの参照を文字列で指定することができる関数です。

INDIRECT関数自体を単体で使うということはありませんが、知っておくと業務の幅が確実に広がります。

関数名INDIRECT関数
説明セルの参照を文字列で指定する。単体で使われることはほとんどない。
書式=INDIRECT関数(参照文字列)

セルの参照を文字列で指定するとは?

セル番地:B9には100が入力されています。こちらを直接参照する場合は以下のようにすれば参照できます。

直接参照
直接参照

INDIRECT関数を使った参照

では、セル番地D10文字列B9を入力します。(※セル番地B9には予め100が入力されています。)その入力された文字列B9をセル番地として参照可能にするのがINDIRECT関数です。

INDIRECT関数による参照

INDIRECT関数は、参照を文字列で指定できるので以下のように書くこともできます。※関数に文字列を使う場合は、"(ダブルクォーテーション)で囲みます。

これがINDIRECT関数の基本的な動きになります。では、よく使われるINDIRECT関数を活用法を紹介します。

INDIRECT関数を活用した2段階リストの作成

2段階リスト

上記のように、「社員名一覧」と「営業所マスタ」があります。「社員名一覧」の営業所名フィールドには「営業所マスタ」を参照した入力規則のリストが設定されています。社員名フィールドにも入力規則のリストが設定されています。

上の動画のように「社員名一覧」の営業所名フィールドのリストを変更すると、それぞれの営業所の社員一覧リストが自動的に切り替わるというものです。

作成手順は以下になります。

名前の定義の設定

「営業所マスタ」「鳥取営業所」「倉吉営業所」「米子営業所」のフィールドをそれぞれ名前の定義に設定します。

名前の定義

「営業所マスタ」を範囲選択→「数式タブ」→定義された名前:「選択範囲から作成」「上端行」をチェック

名前はそれぞれ「鳥取営業所」「倉吉営業所」「米子営業所」となります。

入力規則リストの設定

「社員名一覧」の「営業所名」フィールドを入力規則:リストに設定します。

「社員名一覧」の「営業所名」フィールドを範囲選択→「データ」タブ→データツール:「データの入力規則」のリスト→元の値を「鳥取営業所」「倉吉営業所」「米子営業所」(営業所マスタの行タイトル)を範囲選択して設定します。

リスト設定

INDIRECT関数を使った入力規則の設定

「社員名一覧」の「社員名」フィールドを範囲選択→「データ」タブ→データツール:「データの入力規則」のリスト→元の値を下記のように設定します。

INDIRECT関数の入力規則

INDIRCT関数の引数は「営業所名」フィールドのセルです。

INDIRECT関数は、セルの参照を文字列で指定することができる関数です。よって、名前の定義に設定されている「営業所名」フィールドのセルを参照することによって、リストとして「営業所マスタ」のそれぞれの営業所フィールドを参照できるということです。

全体図

まとめ

今回はINDIRECT関数の基本とその活用方法について紹介しました。