Excelでは現状、ドロップダウンリストから1つの項目しか選択できませんが、工夫することで複数選択が可能になります。
本記事では、その設定方法について詳しく解説していきます。
完成イメージ
作成するドロップダウンリストのイメージは以下になります。
① 何も入力されていない時は1つの項目のみ表示される

② 1つの項目を選択した後にリストを展開すると2つ目の項目が表示される

③ 以降、最大で5つまで指定することができる

手順1: 複数選択時の候補を準備する
こちらでは、以下のセルB3からセルB11に、複数選択可能なドロップダウンリストを作成していきます。

まずは、ドロップダウンリストの候補となる値をセルF2から横方向に並べます。
※必要に応じてセルの位置は変更してください。

次に、B列のドロップダウンリストの候補に表示させる値をセルF3以降に表示させていきます。
表示させる値は、B列のドロップダウンリストに入力した値によって変化させます。
例えば、セルB3が空の場合は、セルF3からJ3に「1」、「2」、「3」、「4」、「5」と表示させます。
次に、セルB3に「2」が入力された場合は、セルF3からJ3に「2,1」、「(空)」、「2,3」、「2,4」、「2,5」と表示させます。
更に、セルB3に「2,4」が入力された場合は、セルF3からJ3に「2,4,1」、「(空)」、「2,4,3」、「(空)」、「2,4,5」と表示させます。
このように、ドロップダウンリストから値が選択される度、ドロップダウンリストに表示させる値に選択していない値を追加して、複数選択を実現していきます。 その仕組みを実現する数式は、以下になります。
=IFS($B3="",F$2,IFERROR(FIND(F$2,$B3),0),"",TRUE,$B3&","&F$2)
// $B3="",F$2:セルB3が空の場合に通常の候補(F2)を返す(B列と2行目を「$」で固定)
// IFERROR(FIND(F$2,$B3),0),"":セルB3にセルF2の値が含まれている場合に空("")を返す(2行目とB列と「$」で固定)
// ※FIND関数で特定の文字が含まれているかどうかを確認、含まれている場合は、その文字が含まれている位置情報(先頭からの通し番号)を返し、含まれていない場合は、エラーを返す
// IFERROR関数で、FIND関数がエラーの時に「0」を返す
// 条件式では「0」がFALSE(偽)、「0」以外の数値がTRUE「真」とされる
// TRUE,$B3&","&F$2:それ以外の場合にセルB3とセルF2の値をカンマで結合して返す(B列と2行目を「$」で固定)
この数式をセルF3に入力し、必要な範囲にコピーします。

このようにして、各行に対する候補を表示することができました。
試しに、B列に適当な値を入力することで、数式の結果が変化することが確認できます。

手順2: データの入力規則を設定する
最後に、数式で作成した候補をドロップダウンリストとして設定していきます。
まずはドロップダウンリストを設定する範囲を選択し、[データ]タブの中の[データの入力規則]を選択します。

表示される以下の設定画面にて、[入力値の種類]を[リスト]にし、[元の値]に以下の数式を入力します。
=$F3:$J3
// 行番号を相対的に変化させる必要があるため、行番号の「$」を外す

以上の設定をして確定することで、複数選択を可能としたドロップダウンリストを作成することができます。


































































































