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

【Excel】第1希望は1個、第2希望は2個選べるドロップダウンリストを作るには?

選択可能な項目を制限するドロップダウンリストを作ってみよう

ドロップダウンリストの項目を制限する

 決まった項目を入力するセルには、ドロップダウンリストを設定しておくと便利ですよね。以下の表は、ある研修について、第1希望と第2希望のアンケートを採るためのものです。「○」と「△」のいずれかを選べるドロップダウンリストを設定しています。

「○」と「△」から選択できるドロップダウンリストを設定してあります(①)。「○は1つ、△は2つ」と注意書きがありますが、間違えて入力してしまうことはあります
ドロップダウンリストの設定内容は「○」か「△」の2択です(②)

 ただ、「○」は1つ、「△」は2つまで入力してほしいと注意書きがありますが、現状ではいくつでも入力できる状態です。注意していても間違えて入力してしまうことはあります。

 制限の数に達したら、リストに表示させない仕掛けがあるといいと思いませんか? 入力結果に応じて、項目の表示・非表示を制御できるようにカスタマイズする方法を紹介します。

作業用のセルに数式を入力する

 ドロップダウンリストに表示させる項目は、セルを参照しても構いません。「○」と「△」と入力したセルを参照可能ということです。ただし、それでは固定値と変わらないため、数式を使って「○」と「△」の入力数を判定します。

 セルD3~G3に「○」が1つ以上入力されていたら何も表示しない、といった具合です。具体的には以下のように入力します。「△」の場合は、2つ以上入力されていたら何も表示しないとなります。

セルI3の数式:=IF(COUNTIFS(D3:G3,"○")>=1,"","○")
セルJ3の数式:=IF(COUNTIFS(D3:G3,"△")>=2,"","△")

 I列とJ列を作業列として利用します。数式をコピーすることを考慮して、相対参照のままにしておきます。また、ドロップダウンリストの設定をコピーできるように、[データの入力規則]ダイアログボックスでは「=$I3:$J3」と複合参照で指定することがポイントです。

セルD3~G12の内容は消去しておきます。セルI3に「=IF(COUNTIFS(D3:G3,"○")>=1,"","○")」と入力します(③)
セルJ3に「=IF(COUNTIFS(D3:G3,"△")>=2,"","△")」と入力します(④)
セルI3とJ3の数式をコピーしておきます(⑤)。セルD3~G12の内容は消去してあるため、数式の結果として「○」と「△」が表示された状態になります
セルD3~G3を選択して(⑥)、[データ]タブ(⑦)の[データの入力規則](⑧)をクリックします
[元の値]に「=$I3:$J3」と指定します(⑨)。セルI3~J3をドラッグした場合は「=$I$3:$J$3」と絶対参照で指定されるので、行番号の固定を解除します。[OK](⑩)をクリックします。
セルD3~G3を選択して(⑪)、下方向へコピーします(⑫)

動作を確認する

 ドロップダウンリストが意図通りに動作するか確認してみましょう。I列とJ列に入力した数式によって「○」と「△」の数が判定され、制限した数を超えると項目が非表示になります。

何も入力されていない状態では「○」と「△」がドロップダウンリストに表示されます(⑬)
隣の列では入力済みの「○」は非表示になり、「△」だけが選択できるようになります(⑭)。セルI3も非表示になっていることがわかります(⑮)
さらに隣の列も同様。「△」は選択可能で「○」は非表示です(⑯)
「○」1つと「△」2つが入力済みとなると、ドロップダウンリストには何も表示されなくなります(⑰)
下の行でも同様です。「△」を2つ入力済みなので、「○」のみ表示されています(⑱)

 ドロップダウンリストから参照するセルの数式を工夫すれば、「○」を2つまで、「△」を3つまで、「×」は制限なし、といった柔軟な設定も可能です。シンプルな仕組みながら、活用シーンは広いはずです。実務に合わせてアレンジしてみてください。