多段階のドロップダウンリストの作り方を調べたら複数ヒットしたが、ドロップダウンリスト用テーブルを準備したうえで、規則入力にINDIRECT関数を使用する方法しか見つからなかった。
UNIQUE関数とFILTER関数を使って簡単に多段階のドロップダウンリストを作ることができたので、その方法をここにメモしておく。
UNIQUE関数で重複データから一意のデータを抽出する ExcelでFILTER関数を使ってデータを抽出する多段階ドロップダウンリストの要件
商品情報のテーブルから多段階のドロップダウンリストで商品を選択し、その商品の価格を抽出することにします。
製品情報のテーブル
ドロップダウンリストと結果抽出
購入先、商品名、商品コードの3段階のドロップダウンリストを作成する。
選択したリストの価格を自動で抽出する。
ドロップダウンリストの仕様
- ドロップダウンリストを作成するためのテーブルを作成しない
- 元データベースを更新したら自動でドロップダウンリストの内容も更新される
- 何段階のドロップダウンリストも作成できる
3段階ドロップダウンリストだが、この方法ならば4段階でも5段階でもドロップダウンリストを作成することが可能です。
多段階ドロップダウンリストの作り方
データベースの準備
ドロップダウンリストを作成する元のデータベース(先述した「商品情報のテーブル」)を準備する。
「テーブルデザイン」→「テーブル名」でテーブル名を「商品テーブル」に変更しておく。
ドロップダウンリストの元データの準備
UNIQUE関数とFILTER関数を使ってドロップダウンリストの元データを準備する。
1段目のドロップダウンリストの元データはUNIQUE関数で作成する。
テーブルの購入先の列をUNIQUE関数で指定するだけ、購入先の重複データを除いたリストを得ることができる。
2段階目の商品名はFILTER関数で選択した購入先の品名のみのデータを抽出し、重複データを消去するためにUNIQUE関数を使用する。
ドロップダウンリストを作るために、購入先を選択するセルにカーソルを合わせて、「データ」→「データツール」→「データの規則入力」を選択する。
入力の種類は「リスト」を選択します。
元の値は「↑」(上矢印)を選択します。
取引先を抽出したF列を指定します。「↓」(下矢印)をクリックし、データの起草入力の画面に戻ったらOKをクリックします。
これで、1段目のドロップダウンリストが完成しました。
次に2段目のドロップダウンリストの作り方です。
FILTER関数で1段目に選択した購入先の商品名を抽出して、UNIQUE関数で重複データを消去します。
ここでのポイントは、商品テーブル[購入先]がドロップダウンリストの1段目の「購入先」と一致する商品名を抽出しているところです。これにより、購入先を変更するとG列に表示される商品名が動的に変更されます。
商品名も購入先と同様にデータ規則入力からG列のリストを指定します。
購入先を変更すると、G列と商品名のリストが動的に変更されます。
2段目のドロップダウンリストが完成しました。
3段目のドロップダウンリストは2段目と同様の方法で作成できます。
これで、3段階のドロップダウンリストが完成しました。
ドロップダウンリストからデータ抽出
最後にXLOOKUP関数を使って、選択したリストの価格を抽出します。
想定通りに商品コードG0001の価格「2400」が抽出されています。
F~H列はドロップダウンリストを作成するための中間データなので、実務では非表示しておくと、見栄えもよくなりますし、誤って消去されることもなくなります。
このデータベースに価格以外の商品情報があれば、XLOOKUP関数などで必要な情報を簡単に抽出することができます。
例はデータ数が少ないですが、数千件、数万件のデータからデータを絞って必要な情報を抽出する場合には、多段階ドロップダウンリストは活躍します。