「名前」とINDIRECT関数を利用する
Excelのプルダウンリスト(ドロップダウンリスト)は、リストから入力する項目を選択できる機能です。[データの入力規則]ダイアログボックスでリストの項目を直接入力するか、項目が入力されたセル範囲を指定して作成します。
入力ミスの防止などに役立つプルダウンリストですが、この項目数が多いと、リストをスクロールしないと項目が表示しきれず、かえって不便です。役職や商品分類などの大項目を付けることでリストの項目を分類できるならば、大項目を選択したら連動して小項目が絞り込まれるリストにしたいところです。
以下の例では、A列とB列それぞれにプルダウンリストを作成しています。B列のリストでは、すべての「資格レベル」の担当者が1つにまとまっており、項目数が多くなっています。
プルダウンリストの項目が多く、スクロールしないと入力したい項目が選択できない状態です。
項目数が多いリストは、目当ての項目を表示しにくく、選択ミスの原因になりかねません。
ここで実現したいのは、選択した資格レベルに対応する担当者に絞り込めるリストです。以下の例では、A列の入力内容に伴い、B列のリストが絞り込まれています。
プルダウンリストが絞り込まれ、「資格レベル2」の該当者のみ表示されました。
ここでは、このプルダウンリストの作成方法を2段階に分けて説明します。ポイントは、絞り込まれるほうのリストの作成にセル範囲の「名前」とINDIRECT関数を利用することです。まずは、大項目のプルダウンリストを作成するところから始めましょう。
1つめのプルダウンリスト(ドロップダウンリスト)を用意する
大項目のプルダウンリスト(ドロップダウンリスト)には、特別な操作は不要です。通常のプルダウンリストと同様に作成しましょう。
1大項目のプルダウンリストを作成する
プルダウンリストを設定したいセル範囲を選択後、[データ]タブの[データの入力規則]ボタンをクリックして[データの入力規則]ダイアログボックスを表示します。
[設定]タブの[入力値の種類]から[リスト]を選択し、[元の値]にリストの内容を半角の「,」(カンマ)で区切って指定します。あらかじめ大項目のリストを作成し、セル範囲を指定しても構いません。
なお、[元の値]の入力欄で矢印キーを使ってカーソルを移動したいときは、[F2]キーを押して編集状態にしてから操作してください。
2プルダウンリストが作成された
プルダウンリストを作成できました。セルを選択すると、セルの右側に[▼]ボタンが表示されることが分かります。クリックすると先ほど入力したリストが表示されます。
連動するプルダウンリスト(ドロップダウンリスト)を用意する
連動するプルダウンリスト(ドロップダウンリスト)は、1つ目のプルダウンリストで選択した項目と同じ「名前」が付けられたセル範囲をINDIRECT関数を用いて出し分けることで実現します。
Excelの名前ボックスを使うと、任意のセル範囲に名前を付けられます。これを利用して、まず大項目の分類ごとにリストを作成し、それぞれに大項目と同じ名前を付けます。以下の例では、分かりやすいように資格レベルごとに表を整えています。
INDIRECT関数は、引数で指定するセルに入力されているセル範囲を参照する関数です。[データの入力規則]ダイアログボックスの[元の値]の入力欄に、A列のセルを引数に指定したINDIRECT関数を入力し項目名を参照させることで、同じ名前のセル範囲をリストとして表示できるわけです。
3セル範囲に名前を付ける
セルD2~D3を選択してから名前ボックスに名前を入力し、[Enter]キーを押します。A列に指定した項目名とそろえ、ここでは「資格レベル1」と入力してください。
同様にセルE2~E6を選択し、名前ボックスに「資格レベル2」と入力して[Enter]キーを押します。
セルF2~F11を選択し、名前ボックスに「資格レベル3」と入力して[Enter]キーを押します。
4INDIRECT関数を利用する
セル範囲を選択してから手順1と同様に操作し、[データの入力規則]ダイアログボックスの設定タブを表示します。[入力値の種類]から[リスト]を選択し、[元の値]に「=INDIRECT(A2)」と入力します。
5連動するプルダウンリストが作成された
連動するプルダウンリストを作成できました。正しく連動しているか確認します。セルB2の右側の[▼]ボタンをクリックすると、A列の内容(ここでは「資格レベル1」)に対応する項目が表示されました。
同様にセルB3でも確認します。セルB3の右側の[▼]ボタンをクリックすると、A列の内容(ここでは「資格レベル2」)に対応する項目が表示されていることが分かります。
以上で連動するプルダウンリスト(ドロップダウンリスト)が作成できました。ここでは、リストの元データを同一のワークシートに用意しましたが、別のワークシートでも構いません。連動するプルダウンリストの基本は「名前」とINDIRECT関数と覚えてください。