2023年8月25日【ID:0】
【Excel】連動したドロップダウンリスト
連動したドロップダウンリストの例として、クラスによって表示させる氏名のリストを変更する方法について解説していきます。
解説するにあたり、以下のファイルを使用しています。
※こちらのExcelファイルは配布しています。
テーブルの作成
まずは「名簿」シートの各クラスごとの表をテーブルにします。
今回のように、複数の表が繋がっている場合は、個々で選択して、[挿入]タブより[テーブル]を選択します。
※範囲を選択して、「Ctrl+T」でもテーブルを作成することができます。
[テーブルの作成]の画面では、[先頭行をテーブルの見出しとして使用する]をチェックして確定します。
※こちらでは先頭行が「1組」などと見出しとなっているため、このような設定をしています。
次に作成したテーブルを選択し、[テーブル デザイン]タブよりテーブル名を設定します。
他のクラス(2組、3組)に関しても同様にテーブルにし名前を設定します。
テーブル名は、「数字から始まる名前」のように名前によっては設定できないことがあります。
そのような場合は、先頭に文字を加えるなどして、全てのクラスが統一した名前になるように設定します。
こちらでは、テーブルの頭文字の「T」を加えた名前を設定していきます。
テーブルの名前からドロップダウンリストを切り替えられるように作成するため、テーブルの名前にはクラス名(1組、2組、3組)を含むように設定します。
こちらで設定したテーブル名は以下になります。
・T1組
・T2組
・T3組
ドロップダウンリストの作成(クラス)
次に、以下の「参加者」シートに移り、「クラス」を選択するドロップダウンリストを作成していきます。
ドロップダウンリストを設定したい範囲を選択し、[データ]タブの中から[データの入力規則]の[リスト]にて、以下のようにクラス名を参照させます。
※直接カンマ区切りで入力しても問題ないです。
これでクラスのドロップダウンリストが完成しました。
ドロップダウンリストの作成(氏名)
最後に、この名前を参照したリストを作成します。
氏名の項目を全選択し、[データ]タブの中から[データの入力規則]の[リスト]にて、以下のような数式を設定します。
=INDIRECT("T"&B3)
// セルB3は選択した範囲の基準となっているセル(こちらの場合はセルC3)に対応するクラスの項目を指定
INDIRECT関数にて、名前を直接参照することができます。
=INDIRECT(参照文字列)
// 指定した文字列(アドレスや名前)を参照する
テーブル名は、"T"から始まっていたため、以下のように"T"とセルB3の値を結合して参照させています。
"T"&B3
このような設定をすることで、クラスに「2組」と入力されている場合は、「T2組」のテーブルの内容をドロップダウンリストとして表示することができます。
セルB3に関しては、他のセルにも適用するため、絶対参照($B$3)ではなく、相対参照(B3)にする必要があります。
上記のように設定することで、以下のように2つのドロップダウンリストを連動させて、該当するクラスの氏名のみを表示させることができます。
▼サンプルファイル▼