エクセル(Excel)で2つ以上のプルダウンを連動させる方法[INDIRECT関数]

以前にエクセルでプルダウンリスト(ドロップダウンメニュー)を作成する方法を紹介したが、2つ以上のプルダウンを作成し、それらを連動させたいという場合がある。

例えば1つ目のプルダウンでは大きなカテゴリーを表すリストを表示させ、その後さらに細かなカテゴリーを表示させるプルダウンを作成したいという場合などがある。

そういった場合は「INDIRECT」関数を使用すれば簡単に作れてしまう。

ここでは、ExcelのINDIRECT関数を使用してで2つ以上のプルダウンリストを連動させる方法をかんたんに説明する。

 

対象となるExcelのバージョン
Excel 2016, Excel 2013, Excel 2010, Excel 2007, etc..

 

前のリストで選択後に次のリストの内容が変化

ジャンルを指定するとメニューが変わるプルダウン
ジャンルを指定するとメニューが変わるプルダウン

画像の例は、和食、洋食、中華のジャンルを1つ目のプルダウンから選択すると、2つ目のメニュー側のプルダウンに表示される内容が自動的に変更され、その中から選択することができるというものだ。

このように、大きなカテゴリーの中から1つを選択し、2つ目にはそのカテゴリー内からさらに選択するという場合に便利な連動機能である。もちろんこれを利用して3つ以上のプルダウンとしても利用できる。

この連動させるプルダウンを作成するには、「INDIRECT」関数を使用する。

INDIRECT関数の書式

INDIRECT(参照文字列, [参照形式])

ABCDE
1データデータ結果説明
2B3みかん=INDIRECT(A2)ぶどうINDIRECTでA2を参照し「B3」が返ってきたためB3セルを参照し「ぶどう」が返ってくる。
3b4ぶどう=INDIRECT(A3)りんごINDIRECTでA3を参照し「B4」が返ってきたためB3セルを参照し「りんご」が返ってくる。
4りんご=INDIRECT(A4)#REF!INDIRECTでA4を参照したが、空白だったためエラー。

INDIRECT関数は、指定したセル内にセルを表す文字がある場合に、そのセルを参照するというもの。
E1セルに=INDIRECT(A1)と入力した場合、Aiセルに「C2」と入力してある場合に、C2を参照しその結果をE1セルに返す。

2つのプルダウンを連動させる手順実践

  1. プルダウンリストに表示する項目をSheet2に用意
    データを準備する

    プルダウンリストに表示する項目をあらかじめ別の場所に用意する。別のシートでも可。

    今回は新しくSheet2を作成しジャンル一覧に和食、洋食、中華、さらにそれぞれのジャンルにメニューを8種類ずつ入力した。

  2. グループに名前をつける
    グループに名前を付ける

    プルダウンに登録しやすいようにするために、ジャンル一覧、和食メニュー、洋食メニュー、中華メニューにそれぞれ名前をつける。

    名前をつけるには、複数のセルをまとめて選択し、左上の名前ボックスに直接入力する。今回はA2~A4の名前を「ジャンル一覧」、C2~C9の名前を「和食」、D2~D9の名前を「洋食」、E2~E9の名前を「中華」とした。

    名前の定義について詳しくはこちらの記事へ。

  3. データの入力規則
    1つ目のプルダウンの作成1

    Sheet1のA2に1つ目のプルダウンメニューを作成する。A1には「ジャンル」と入力しておく。

    次にA2を選択した状態でリボンの[データ>データツール>データの入力規則]を選択する。データの入力規則のアイコンは、Excelのウィンドウサイズによっては小さく表示されたり、省略して表示されたりすることがあるので、「データツール」セクションを目印にして探す。

  4. ジャンル一覧と入力
    1つ目のプルダウンの作成2

    入力値の種類を「リスト」に設定し、「ドロップダウンリストから選択する」にチェックを入れておく。

    「元の値」には、ステップ2で作成した名前「ジャンル一覧」を使用するため、「=ジャンル一覧」と入力する。最後に「OK」ボタンをクリックする。

    A2が問題なくプルダウンリストになっているかどうかを確認する。

  5. 入力規則をクリック
    2つ目のプルダウンの作成1

    Sheet1のC2に2つ目のプルダウンメニューを作成する。C1には「メニュー」と入力しておく。

    次にC2を選択した状態でステップ3と同じようにリボン>データタブから「入力規則」をクリックする。

  6. INDIRECT関数を入力
    2つ目のプルダウンの作成2

    入力値の種類を「リスト」に設定し、「ドロップダウンリストから選択する」にチェックを入れておく。

    「元の値」には、INDIRECT関数を使用してA2を参照するので「=INDIRECT(A2)」と入力する。最後に「OK」ボタンをクリックする。

    この時、A2のプルダウンのセルに何も表示されていない場合は「元の値はエラーと判断されます。続けますか?」というエラーが表示されるが、「はい」をクリックする。

  7. ジャンルを指定するとメニューが変わるプルダウン
    確認

    以上の手順で連動するプルダウンの完成となる。

    1つ目のプルダウンでいずれかを選択した後に、2つ目のプルダウンを開いてみよう。1つ目のプルダウンで選択した項目に応じて2つ目のプルダウンリストの内容が変化しているはずだ。

出典または引用