パソコンを買うなら今!最新セール情報まとめ

Excelで複数の連動するドロップダウンリストを作成する方法

Excelで複数の連動するドロップダウンリストを作成する方法

1つ目のトロップダウンリストで選択した内容に応じて、2つ目のドロップダウンリストの内容を変える。

このように連動するドロップダウンリストを作成できれば、選択ミスの可能性を減らせますし、選択肢がスッキリして選びやすいです。

そこで今回は、Excelで複数の連動するドロップダウンリストを作成する方法をご紹介します。

Excelで複数の連動するドロップダウンリストを作成する方法

Excelで連動するドロップダウンリストを作成する方法には、以下のようなものがあります。

  1. INDIRECT関数を使う
  2. UNIQUE関数とFILTER関数を使う

なお、UNIQUE関数とFILTER関数はMicrosoft 365やOffice 2021でなければ使用できません。以下の記事にてMicrosoft 365やOffice 2021の購入ページをご紹介していますので、Office 2019以前のバージョンをお使いの方はチェックしてみてください。

方法1:INDIRECT関数を使う

INDIRECT関数(インダイレクト関数)とは、文字列で指定されたセル番地の値を返す関数です。

対応バージョン365 / 2021 / 2019 / 2016 / 2013

INDIRECT関数の構文

INDIRECT(参照文字列, 参照形式

参照文字列(必須)
取得したい値があるセル番地を「A1形式」または「R1C1形式」の文字列で指定する。
(例)2行目と3列目が交差するセル → C2(A1形式)/R2C3(R1C1形式)
参照形式(省略可)
【参照文字列】の種類を以下のいずれかで指定する。省略すると「TRUE」として処理される。
  • TRUE:【参照文字列】をA1形式とみなす。
  • FALSE:【参照文字列】をR1C1形式とみなす。

INDIRECT関数を使って連動するドロップダウンリストを作成するには、まずリストを作成します。1行目に「1つ目のリスト」を、2行目から下に「1行目を選択した場合に2つ目のリストにしたいもの」を入力します。

Excel

リストを作成したら、1行目のデータ範囲を選択して「数式」タブ⇒「名前の定義」をクリックします。

Excel

「新しい名前」が表示されたら、範囲に適当な名前を付けて「OK」を押します。

Excel

2行目から下のデータ範囲も同様に名前を付けます。このとき、名前は必ず「その列の1行目の値」にします。

Excel
Excel

1つ目のドロップダウンリストを表示したいセルを選択し、「データ」タブ⇒「データの入力規則」をクリックします。

Excel

「データの入力規則」が表示されたら、「設定」タブを開き、入力値の種類で「リスト」を選択、元の値に=1つ目のリストの名前と入力して「OK」を押します。

Excel

これで1つ目のドロップダウンリストが作成されます。

Excel

2つ目のドロップリストを表示したいセルを選択して「データの入力規則」を表示します。表示されたら元の値に=INDIRECT(1つ目のドロップダウンリストのセル番地)と入力します。

Excel

「元の値はエラーと判断されます。続けますか?」というメッセージが表示されたら「はい」を押します。エラーになるのは、1つ目のドロップダウンリストが空白のためです。

Excel

これで1つ目のトロップダウンリストで選択した内容に応じて、2つ目のドロップダウンリストの内容が変わります。

Excel

方法2:UNIQUE関数とFILTER関数を使う

UNIQUE関数(ユニーク関数)とは、重複しないデータを抽出する関数です。

対応バージョン365 / 2021

UNIQUE関数の構文

UNIQUE(範囲, 検索方向, 回数

範囲(必須)
重複データを含むセル範囲を指定する。
検索方向(省略可)
重複をチェックする方法を以下のいずれかで指定する。省略すると「FALSE」として処理される。
  • TRUE:右方向にチェックする。
  • FALSE:下方向にチェックする
回数(省略可)
何回出現するデータを抽出するか以下のいずれかで指定する。省略すると「FALSE」として処理される。
  • TRUE:1回だけ出現するデータを抽出する。
  • FALSE:重複分を除いたデータを抽出する。

FILTER関数(フィルター関数)とは、条件に一致する行を抽出する関数です。

対応バージョン365 / 2021

FILTER関数の構文

FILTER(範囲, 条件, 一致しない場合の値

範囲(必須)
検索する範囲を指定する。
条件(必須)
検索する条件を指定する。
一致しない場合の値(省略可)
一致する行がない場合に返す値を指定する。

UNIQUE関数とFILTER関数を使って連動するドロップダウンリストを作成するには、まずリストを作成します。リストは「1つ目のリスト」と「2つ目のリスト」が横並びになるようにします。縦方向のリストは重複していてもOKです。

Excel

リストを作成したら、任意のセルに=UNIQUE(1つ目のリストのデータ範囲)と入力します。すると、数式を入力したセル以下に、1つ目のリストが重複を除いて抽出されます。

Excel

隣のセルに=UNIQUE(FILTER(2つ目のリストのデータ範囲,1つ目のリストのデータ範囲=1つ目のドロップダウンリストのセル番地))と入力します。すると、数式を入力したセル以下に、1つ目のドロップダウンリストで選択した内容に対応する2つ目のリストが抽出されます。現段階ではまだ1つ目のドロップダウンリストを設定していないのでエラーになります。

Excel

1つ目のドロップダウンリストでいずれかを選択している場合は以下のように抽出されます。

Excel
Excel

1つ目のドロップリストを表示したいセルを選択して「データの入力規則」を表示します。表示されたら元の値に=1つ目のリストを抽出したセル番地#と入力します。

Excel

これで1つ目のドロップダウンリストが作成されます。

Excel

2つ目のドロップリストを表示したいセルを選択して「データの入力規則」を表示します。表示されたら元の値に=2つ目のリストを抽出したセル番地#と入力します。

Excel

これで1つ目のドロップダウンリストで選択した内容に応じて、2つ目のドロップダウンリストの内容が変わります。

Excel

Excelでドロップダウンリストの選択を変更したときに連動するドロップダウンリストを空白にする方法

Excelでドロップダウンリストの選択を変更したときに連動するドロップダウンリストを空白にするには、マクロを使います。

マクロの使い方がわからない方は、先に以下の記事をご覧ください。

Sheet1にドロップダウンリストがあるなら、プロジェクトウィンドウからSheet1をダブルクリックし、表示されたシートモジュールに以下のコードをコピペします。

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("B2") = ""
    End If
    
End Sub

このマクロは、「A2の値を変更するとB2が空白になる」というものです。A2とB2は必要に応じて変更してください。

これでA2で別の選択肢を選んだり、空白にしたりすると、B2が空白になります。

Excel

まとめ

今回は、Excelで複数の連動するドロップダウンリストを作成する方法をご紹介しました。

連動するドロップダウンリストは、INDIRECT関数を使ったり、UNIQUE関数とFILTER関数を使ったりすることで作成できます。

2段階の連動なら前者の方法が、3段階以上の連動なら後者の方法がおすすめです。