複数のドロップダウンリストで表示項目を絞り込む(Excel)

2020031231.jpg
例えばこのサンプルでは市町村名を選択する場合、

1.A列 → 50音の「行」をリストから選択
2.B列 → 50音の「行」で選択された「行」(例:「あ行」)から50音(例:「あ」「い」…)をリストから選択
3.C列 → 50音で選択された文字(例:「あ」)から「県名」をリストから選択
4.D列 → 「県名」で選択されたリストから「市町村名」を選択

と、4つの項目から選択するリストの作成を備忘録にしておきます。

①元となる一覧表を作成します。


↓「行」列(A列)と「50音」列(B列)はわざとひっつめて入力しました。
2020031232.jpg

↓左の画像のように対応する欄で一覧表を作った方が作りやすいし見やすいのですが、リストにすると見にくいので、リストにする前提である場合は右側のような一覧表にするほうが良いと思います。
2020031233.jpg

左の一覧表でリストを作るとこんな感じで行間が……
選択しにくくなります。
2020031209.jpg

②一覧表のデータにそれぞれ「名前の定義」を使って名前をつけていきます。


・「行」の列の名前をつけます。
「行」の範囲を選択して → 「数式」タブ → 「名前の定義」の「選択範囲から作成」をクリック。
2020031216.jpg

一番上の「行」という名前にしたいので、「上端行」をチェック → 「OK」をクリック。
2020031217.jpg

・「50音」の列の名前をつけます。
「あ行」を選択したら「あ」「い」「う」…と出てくるように名前をつけます。

「あ行」に対応するセルを範囲選択  → 「数式」タブ → 「名前の定義」をクリック 
「新しい名前」ボックスが出てくるので、「名前」欄に「あ行」と入力します。
(下記画像の黄色で塗ってある部分の文字を「名前」にします。)
2020031218.jpg

同様に「か行」以下の名前も定義していきます。
2020031219.jpg

・「県名」の列の名前をつけます。
「50音」を選択したら対応する「県名」が出てくるように名前をつけます。

「あ」に対応するセルを範囲選択  → 「数式」タブ → 「名前の定義」をクリック 
「新しい名前」ボックスが出てくるので、「名前」欄に「あ行あ」と入力します。
セル列番号Aで「あ行」を選択し、かつセル列番号Bで「」を選択した場合に出てくる選択肢にするため、「セル列番号Aセル列番号B」とを合わせた「名前」にします。
(下記画像の黄色で塗ってある部分の文字を「名前」にします。)
2020031220.jpg

同様に、「い」を選択すると出てくるように名前をつけます。
「い」に対応するセルを範囲選択 → 「名前の定義」 → 「名前」欄に「あ行い」と入力します。
2020031221.jpg

・「市町村」の列の名前をつけます。
これらも上記と同様に名前をつけていきます。
「愛知県」に対応するセルを範囲選択 → 「名前の定義」 → 「名前」欄に「あ行あ愛知県」と入力します。
セル列番号Aで「あ行」を選択し、かつセル列番号Bで「」を選択、かつセル列番号Cで「愛知県」を選択した場合に出てくる選択肢にするため、「セル列番号Aセル列番号Bセル番号C」とを合わせた「名前」にします。
(下記画像の黄色で塗ってある部分の文字を「名前」にします。)
2020031223.jpg

以下同様に名前をつけます。
2020031224.jpg


③「データの入力規則」を使って選択項目が表示されるようにします。


・「行」の列(A列)で選択肢が出るようにします。

「行」列の最初の入力セル(ここでは「セルA2)を選択し、
「データ」タブ → 「データの入力規則」 → 「データの入力規則」をクリックします。
2020031234.jpg

「データの入力規則」のダイアログボックスが出てくるので「設定」タブ「入力値の種類」のところ「∨」から「リスト」を選択します。
「元の値」欄には先程「名前の定義」でつけた名前「=行」と入力します。
「=」は半角です。
2020031227.jpg

「OK」をクリックするとこのような画面が出てくるかもしれませんが、気にせず「はい」をクリックしておきましょう。
2020031211.jpg

・「50音」の列(B列)で選択肢が出るようにします。
「50音」列の最初の入力セル(ここでは「セルB2)を選択し、
「データ」タブ → 「データの入力規則」 → 「データの入力規則」 → 「リスト」
「元の値」には「=INDIRECT(A2)」と入力します。
2020031225.jpg

「INDIRECT関数」は「参照先のセルに記入されているセルの値を返す」関数です。
「=INDIECT(A2)」の「(A2)」はここでは「セルA2を参照する」の意味です。

・「県名」の列(C列)で選択肢が出るようにします。
「データ」タブ → 「データの入力規則」 → 「データの入力規則」 → 「リスト」
「元の値」には「=INDIRECT(A2&B2)」とすべて半角で入力します。
「(A2&B2)」は「A2で選択された値+B2で選択された値」という意味で、「名前の定義」でつけた名前になるようにしています。
例えばA2「あ行」、B2で「」が選択された場合は自動的に「あ行あ」という名前の項目をリストアップしてくれます。
2020031228.jpg

・「市町村名」の列(C列)で選択肢が出るようにします。
「データ」タブ → 「データの入力規則」 → 「データの入力規則」 → 「リスト」
「元の値」には「=INDIRECT(A2&B2&C2)」とすべて半角で入力します。
「(A2&B2&C2)」は「A2で選択された値+B2で選択された値+B2で選択された値」という意味で、「名前の定義」でつけた名前になるようにしています。
例えばA2「あ行」、B2で「」、C2で「岩手県」が選択された場合は自動的に「あ行い岩手県」という名前の項目をリストアップしてくれます。
2020031229.jpg

あとは設定した行を他の行にコピーして完成です。
2020031230.jpg
関連記事

0 Comments

Post a comment