【Excel】INDIRECT関数で連動するドロップダウンリストを作成する方法

この記事は約5分で読めます。

今回は、Excelで複数のドロップダウンリストを連動させる方法について紹介します。

Excelでアンケートの回答欄や発注書などの入力フォームを作成する際、セルの入力規則を使って「ドロップダウンリスト(プルダウン)」を設定することがよくあります。これは、あらかじめ用意した選択肢の中から選んでもらう仕組みで、入力の手間を省き、表記揺れを防ぐのに役立ちます。

さらに一歩進んで、「1つ目のリストで選んだ項目によって、2つ目のリストの選択肢が自動的に切り替わる」という仕組みを作りたい場面があるかもしれません。例えば、「都道府県」を選んだら、次のセルではその都道府県の「市区町村」だけがリストに表示される、といった形です。これを「連動するドロップダウンリスト」と呼び、INDIRECT関数と名前の定義という2つの機能を組み合わせることで実現できます。

連動リストを作るための準備:データの整理と「名前の定義」

連動するドロップダウンリストを作るためには、まず元となるデータを正しく整理し、それぞれに「名前」を付ける作業(名前の定義)が必要になります。この準備段階が設定の鍵を握ります。

元データの作成ルール

まずは、選択肢となるデータを表として作成します。ここで重要なのは、「1つ目のリストの選択肢」を一番上の行(見出し)にし、その下に「2つ目のリストに表示させたい選択肢」を並べることです。

例えば、1つ目のリストで「果物」「野菜」を選ばせる場合、以下のように配置します。

  • A1セル:果物(見出し)
  • A2セル:りんご
  • A3セル:みかん
  • A4セル:バナナ
  • B1セル:野菜(見出し)
  • B2セル:キャベツ
  • B3セル:にんじん
  • B4セル:たまねぎ

このように、大分類を見出しとし、その下に小分類の項目を列ごとに整理しておきます。

「選択から作成」を使った一括での名前定義

データが整理できたら、それぞれの列のデータ範囲に「名前」をつけます。「名前の定義」とは、特定のセルの範囲に呼び名をつける機能のことです。

  1. 先ほど作成した表全体(A1からB4まで)をドラッグして選択します。
  2. 画面上部のメニューから「数式」タブを開きます。
  3. 「定義された名前」グループの中にある「選択から作成」というボタンをクリックします。
  4. 小さなウィンドウが表示されるので、「上端行」のチェックボックスだけがオンになっていることを確認します。
  5. 「OK」をクリックします。

この操作によって、A2からA4の範囲には「果物」という名前が、B2からB4の範囲には「野菜」という名前が自動的に設定されます。

ドロップダウンリストの設定手順

準備が整ったら、実際に入力を行うセルに対してドロップダウンリストの設定を行っていきます。

1つ目のリスト(大分類)の作成

まずは、通常のドロップダウンリストを作成します。ここでは例として、D1セルに1つ目のリスト、E1セルに連動する2つ目のリストを作ると仮定します。

  1. D1セルを選択します。
  2. 「データ」タブを開き、「データの入力規則」をクリックします。
  3. 「設定」タブの「入力値の種類」から「リスト」を選びます。
  4. 「元の値」の入力欄をクリックし、先ほどの表の見出し部分(A1とB1のセル)をドラッグして選択します。
  5. 「OK」をクリックします。

これで、D1セルには「果物」と「野菜」を選べるドロップダウンリストが完成しました。

INDIRECT関数を使った2つ目のリスト(小分類)の作成

次に、E1セルに対して、D1セルの選択結果に連動するリストを設定します。ここで「INDIRECT(インダイレクト)関数」が登場します。INDIRECT関数は、「指定された文字列を、セルの参照(場所)や定義された名前として認識して、その中身を引っ張ってくる」という働きをします。

  1. E1セルを選択します。
  2. 「データ」タブから「データの入力規則」を開き、「入力値の種類」を「リスト」にします。
  3. 「元の値」の入力欄に、半角で =INDIRECT(D1) と入力します。
  4. 「OK」をクリックします。

この設定が意味しているのは、「D1セルに入力されている文字(例えば『果物』)を、単なる文字としてではなく『定義された名前』として解釈し、その名前がつけられた範囲(A2~A4のりんご、みかん、バナナ)をリストの選択肢として表示しなさい」という指示です。

これにより、D1セルで「野菜」を選ぶと、E1セルのリストには自動的に「野菜」と名付けられた範囲(キャベツ、にんじん、たまねぎ)が表示されるようになります。

設定時の注意点とエラーの対処

連動リストを設定する上で、つまずきやすいポイントがいくつかあります。

空白を扱う際のエラーメッセージ

2つ目のリストを設定する際、1つ目のセル(D1セル)が空欄のままの状態で「元の値」に `=INDIRECT(D1)`
を入力して「OK」を押すと、「元の値はエラーと判断されます。続けますか?」という警告メッセージが出ることがあります。これは、D1セルが空欄であるため、参照先が見つからないというExcelの仕様です。設定自体は間違っていないため、そのまま「はい」をクリックして進めて問題ありません。

名前として使えない文字に注意

「名前の定義」にはいくつかのルールがあります。例えば、名前にスペースを含めることや、数字から始めることはできません。そのため、1つ目のリストの選択肢(見出しとなる文字)にスペースが含まれていると、「選択から作成」を行った際に自動的にアンダーバー(_)などに変換されてしまうことがあります。

そうなると、1つ目のリストで選んだ文字と、定義された名前が一致しなくなり、INDIRECT関数がうまく機能しなくなります。見出しの文字を作成する段階で、スペースや記号を含まないシンプルな文字列にしておくことが、トラブルを防ぐポイントとなります。

まとめ

Excelで連動するドロップダウンリストを作成するには、「名前の定義」でデータのグループを作り、「INDIRECT関数」を使ってそのグループを呼び出すという、2つのステップを組み合わせます。最初は少し手順が多く複雑に感じるかもしれませんが、仕組みを理解すれば様々な入力フォームに応用できるテクニックです。入力間違いを防ぎ、操作しやすいシートを作成するための手段として、ぜひ活用してみてはいかがでしょうか。