残業を減らす!Officeテクニック
Excelで大・中・小項目が連動する3階層ドロップダウンリストを簡単に作る方法
2024年2月26日 06:55
ボタンをクリックするとリストが展開される仕掛けは、日常的によく使いますよね。「ドロップダウンリスト」や「プルダウンリスト」と呼ばれ、以下の例では、選択したカテゴリに限定して検索できるようになります。
このようなドロップダウンリストはExcelでも作成可能です。[データの入力規則]ダイアログボックスにリストの項目を指定するのが最も簡単。セルに[▼]ボタンが表示されて、リストから項目を選択できるようになります。
入力の手間も省けてミスも防ぐことができますが、同じ発想で「カテゴリ」と「担当」のドロップダウンリストを作ると、以下のようになってしまいます。
不必要なリストが表示されて使いにくい状態です。例えば、分類が「個人」なら「サービス」「ソフトウェア」「ハードウェア」、カテゴリが「サービス」なら、担当する人のみを表示したいですよね?
難易度高めと言われる“連動する”ドロップダウンリストですが、コツさえつかめば大丈夫です。今回は、大項目→中項目→小項目と絞り込める3階層のドロップダウンリストの作り方を紹介します。
セル範囲に名前を付ける
選択範囲から名前を付ける
セル範囲を参照するために「名前」を付けておきます(詳しくは後述)。ここでは「分類」に2つ、「個人」と「法人」に3つずつのリストが必要なので、まとめて名前を付けてしまいましょう。離れたセル範囲を選択するときは[Ctrl]キーを押しながらドラッグです。
中項目のドロップダウンリストを作成する
INDIRECT関数を利用する
中項目のドロップダウンリストも[データの入力規則]ダイアログボックスを利用しますが、[元の値]に入力するINDIRECT関数がポイントです。「=INDIRECT(C2)」と入力すると、セルC2の値(個人)を参照して、「個人」が示す参照($G$3:$G$5)を返すという意味になります。
小項目のドロップダウンリストを作成する
3階層目の小項目のドロップダウンリストは、2階層目の中項目と同じ考え方ができます。カテゴリに応じた担当を表示するため、セルE2からの参照先をセルD2に指定するだけです。
[データの入力規則]ダイアログボックスに「=INDIRECT(D2)」と指定しても構いませんが、[データの入力規則]はコピー&ペーストできるので、セルD2をそのままセルE2にコピペします。
項目名が重複する場合の対処法
最後に項目名が重複する場合の対処法を紹介します。例えば「個人」と「法人」に同じ名称の「サービス」という項目があるとしましょう。この場合、どちらの「サービス」なのか区別できません。
文字列を連結した新しい「名前」を用意して、小項目のドロップダウンリストでは連結した文字列をINDIRECT関数に指定します。