いまさら聞けないExcelの使い方講座

【Excel】ドロップダウンリストの選択肢が多すぎ!エクセルで2段階のドロップダウンリストで表示項目を絞り込むテクニック

ドロップダウンリストに選択肢が多すぎてスクロールが大変!

 Excelで申請書などの事務資料を作成する際、所属部署名のように入力する値のパターンが決まっている場合、ドロップダウンリストを作成しておいて、いくつかの選択肢から入力できるように設定しておくと便利ですよね。入力の手間を省けますし、入力ミスも少なくなります。

 ただし、このドロップダウンリストに入っている選択肢があまりに多いと、入力したい値を探すのにスクロールしなければならず(①)、かえって面倒に感じてしまいます。

 そこで今回は、ドロップダウンリストを2段階構成にして、表示する選択肢を絞り込む方法について解説します。今回解説する方法でドロップダウンリストを設定すると、1つ目のリストで選んだ値に応じて、もう1つのリストに表示される内容が連動して変わるようになります。例えば、「所属(部)」欄のドロップダウンリストで「営業部」を選ぶと、「所属(課)」欄のドロップダウンリストには「営業第一課」「営業第二課」などの営業部配下の課が表示され、「所属(部)」欄のドロップダウンリストで「人事部」を選ぶと、「所属(課)」欄のドロップダウンリストには人事部配下である「人事第一課」「人事第二課」が表示されます(②)。

 このように、ドロップダウンリストを2段階にしておけば、ドロップダウンリストが長すぎてイライラすることも減るでしょう。

 では、さっそく作り方を見ていきましょう。

ドロップダウンリストの元になる表を作成する

 例として、「休暇申請書」(①)を使って考えてみましょう。所属部署を入力する欄を「所属(部)」(②)と「所属(課)」(③)のように2つ作成します。この2つのセルにドロップダウンリストを作成していきます。

 ドロップダウンリストを作成する前に、まずは、リストの元になる表を準備する必要があります。新たに「所属部署一覧」シート(④)を追加して、所属部署の一覧を作成しましょう。ここで、所属部署一覧を作成する際のポイントは、「営業部」「人事部」などの「所属(部)」の名称を表の上端部に配置する(⑤)ことです。そして、その下に「営業第一課」「営業第二課」などの下位の所属部署名を入力(⑥)していきます。

 表が完成したら、ドロップダウンリストの作成を簡単にするために、リストの元になるセル範囲にそれぞれ名前を付けます。まず、「所属(部)」欄のドロップダウンリストとなるセル範囲に名前を付けます。対象のセル範囲A2:E2(⑦)を選択した状態で、名前ボックスに「所属_部」(⑧)と直接入力します。

 続けて[Enter]キーを押して入力を確定します。これで、このセル範囲A2:E2に「所属_部」という名前が付きました。

 次に「所属(課)」欄のドロップダウンリストとなるセル範囲に名前を付けます。ここでは、上位の所属をセル範囲の名前として設定します。例えば、「営業第一課」~「営業第四課」(セル範囲A3:A6)には、上位の所属名である「営業部」という名前を設定します。この操作は、選択したセル範囲に対して一括で行うことができます。セル範囲A2:E6を選択した状態で(⑨)、[数式]タブ(⑩)→[選択範囲から作成](⑪)をクリックします。

 [選択範囲から名前を作成]ダイアログボックスが表示されるので、[以下に含まれる値から名前を作成]欄の[上端行]のチェックマークだけをON(⑫)にします。

 [OK](⑬)をクリックしてダイアログボックスを閉じます。

 シートに戻るので、「営業第一課」~「営業第四課」(セル範囲A3:A6)を選択して(⑭)名前ボックスを確認してみます。「営業部」(⑮)という名前が設定されていることがわかりますね。

 ここでは1つ1つ確認はしませんが、B~E列のセル範囲にも同様に名前が設定されています。

 これで準備は完了です。次項からは実際にドロップダウンリストを作成していきます。

2つの連動するドロップダウンリストを作成する

 「休暇申請書」シートを表示します。はじめに「所属(部)」欄のドロップダウンリストから作成します。ドロップダウンリストを設定するセル(B4)を選択した状態で(①)、[データ]タブ(②)→[データの入力規則](③)をクリックします。

 [データの入力規則]ダイアログボックスが表示されるので、[設定]タブ(④)の[入力値の種類]欄で[リスト](⑤)を選択します。[元の値]欄(⑥)には、先ほど設定したセル範囲の名前を入力するのですが、この時に[F3]キーを押すとすばやく入力を行えます。

 実際に[F3]キーを押してみましょう。すると[名前の貼り付け]ダイアログボックスが表示され、先ほど設定した名前の一覧が表示されます。ここでは「所属_部」(⑦)を選択して、[OK](⑧)をクリックします。

 再び[データの入力規則]ダイアログボックスが表示されるので、「=所属_部」(⑨)と入力されていることを確認し、[OK](⑩)をクリックします。

 「休暇申請書」シートに戻ります。続けて「所属(課)」欄のドロップダウンリストを設定します。ドロップダウンリストを設定するセル(B5)を選択した状態で(⑪)、[データ]タブ(⑫)→[データの入力規則](⑬)をクリックします。

 [データの入力規則]ダイアログボックスが表示されるので、先ほどと同じように[設定]タブ(⑭)の[入力値の種類]欄で[リスト](⑮)を選択します。

 [元の値]欄(⑯)には、前述の手順で設定したセル範囲の名前を入力するのですが、「所属(部)」のドロップダウンリストの時と少し異なります。今回、「所属(課)」欄(セルB5)のドロップダウンリストで表示したいセル範囲は、「所属(部)」欄(セルB4)のドロップダウンリストで選んだ内容に応じて変わるように設定します。

 このような場合は、直接名前を入力するのではなく、INDIRECT関数を使って「=INDIRECT(B4)」(⑰)と入力します。INDIRECT関数は、引数に指定された文字列が表す参照を返す関数で、「=INDIRECT(参照文字列)」という書式で記述します。このように書くと難しく聞こえるかもしれませんが、こうすることで、セルB4に「営業部」が入力された場合は「営業部」という名前のセル範囲を参照することができ、「人事部」が入力された場合は「人事部」という名前のセル範囲を参照することができます。INDIRECT関数は奥の深い関数なので、また別の機会を設けて詳しく解説します。

 [OK](⑱)をクリックしてダイアログボックスを閉じます。「元の値はエラーと判断されます。続けますか?」というメッセージが表示されますが、[はい]をクリックしてかまいません。「休暇申請」シートに戻ったら、ドロップリストの設定は完了です。次の項では、設定されているかどうか操作して試してみましょう。

作成したドロップダウンリストを操作してみる

 では、作成したドロップダウンリストを確認してみます。まず、「所属(部)」欄に値を入力してみましょう。セルB4をクリックするとセルの右側に[▼]ボタン(①)が表示されるので、クリックするとドロップダウンリストが表示されます(②)。試しに[営業部](③)を選択してみましょう。

 セルB4に「営業部」(④)と入力されましたね。続けて、「所属(課)」欄にも入力します。セルB5をクリックするとセルの右側に[▼]ボタン(⑤)が表示されるので、クリックするとドロップダウンリストが表示されます(⑥)。セルB4で入力した「営業部」の配下にある所属部署だけが表示されていますね。ここでは[営業第四課](⑦)を選択します。

 セルB5に「営業第四課」(⑧)と入力されました。

 別の所属部署でも試してみましょう。まず、「所属(部)」欄のドロップダウンリストから「人事部」(⑨)を選択して入力すると、「所属(課)」欄のドロップダウンリストには「人事部」の配下の所属部署名が表示されますね(⑩)。

 このように、1つ目のドロップダウンリストと連動して2つ目のドロップダウンリストに表示する内容を絞り込めるようにしておけば、選択肢の数が多くてもスムーズに入力を行えますね。

ドロップダウンリストを連動させてリストに表示する内容を絞り込む

 今回は、2段階構成のドロップダウンリストを作成して、リストに表示する選択肢を絞り込む方法について解説しました。1つ目のリストで選んだ値に連動して、2つ目のリストに表示される内容が変わるので、選択肢が多くても入力がスムーズに行えますね。

 今回は、所属部署名を入力する例で解説しましたが、名簿や住所録で都道府県名を入力するような場合にも応用できます。例えば、1つ目のリストを「東北」「関東」などの地域リストにしておいて、2つ目のリストにはそれに応じた都道府県名のリストを表示するといった活用法もあります。ぜひ試してみてくださいね。