【Excel】3段階プルダウン(ドロップダウン)の作成方法!3つを連動させる手順を紹介

エクセルで3つのプルダウンを連動させる方法

エクセルでプルダウン(ドロップダウン)を使うと、セルから決まった文字列を選択することが出来ます。

ただ、プルダウンリストが多すぎると、文字列を探すのが大変になるため、逆に不便に感じてしまいます。

そんな時にはプルダウンを連動させて設定することで、選択する件数を絞ることが出来ます。

以下の記事では、2つのプルダウンを連動させて、選択する項目数を減らす方法を紹介しました。

エクセルの2段階プルダウンを作る方法
エクセルの2段階プルダウンを作る方法

今回は、3つのプルダウンを連動させて、さらに項目数を限定する方法を紹介します。

エクセルの3段階のプルダウン(イメージ図)
エクセルの3段階のプルダウン(イメージ図)

部門、課、氏名をプルダウンで選択する時などに便利なテクニックだよ。

2段階プルダウンを設定する方法(おさらい)

2段階プルダウンを設定するときは、通常のプルダウンの設定に加えて、INDIRECT関数「名前」機能を利用しました。

今回紹介する3段階プルダウンも、基本的には同様のテクニックを利用します。

エクセルの2段階プルダウン
エクセルの2段階プルダウン

プルダウンの基本操作をあらためて確認したい方は、下の2段階プルダウンの設定に関する記事を参考にしてください。

プルダウンの連動に利用する機能と関数

3つの連動するプルダウンを設定するためには、「名前」機能INDIRECT関数を用います。

2つの連動するプルダウンを設定する時にも使う機能です。

2つとも聞きなれない方が多いと思うので、手順を紹介する前に、機能の概要を紹介します。

「名前」機能で、セル範囲に「名前」を登録

名前』機能を使うと、セルやセル範囲や数式や固定値に、機能名のとおり「名前」を登録することが出来ます。

登録した「名前」は、数式の中で使うことでセルの引数の設定が簡単になります。

セル範囲に「名前」を付ける方法は、数式バーの左横、A列の列番号の上側に設置されている「名前ボックス」を利用します。

エクセルの「名前ボックス」の位置
エクセルの「名前ボックス」の位置

まず「名前」を付けたいセル範囲を選択します。

「名前」をつけたいセル範囲を選択
「名前」をつけたいセル範囲を選択

セルを選択した状態のままで「名前ボックス」に「名前」を入力して「Enter」キーを押します。「Enter」キーで確定しないと登録が完了しないので忘れないに注意が必要です。この作業で「名前」の登録は完了です。

「名前ボックス」に「名前」を入力
「名前ボックス」に「名前」を入力

「名前」が正しく登録されたか確認します。

セル範囲を再度選択すると、「名前ボックス」に登録した「名前」が表示されていれば無事登録が完了しています。

「名前」の登録を確認する方法
「名前」の登録を確認する方法

3つを連動させるプルダウンでは、この「名前」機能を使用します。

「名前」機能を詳しくもっと知りたい方は、以下の記事を参考にしてみてください。

INDIRECT関数は、プルダウンの設定時に活躍

INDIRECT関数は、参照するセルの文字列を利用して参照を求める関数です。

構文と引数は以下のようになっています。

=INDIRECT(参照文字列,[参照形式])

1番目の引数は「参照文字列」で入力は必須です。セル参照を表す文字列またはセル番号を指定します。

2番目の引数は「参照形式」で、この引数は省略が可能です。参照文字列で指定されたセル参照の種類を、論理値で指定します。今回はこの引数は利用しません

これだけでは、どのような関数かイメージできないと思いますので、どのように使うか簡単に実例で紹介します。

下の表ではC3セルに「=INDIRECT(B3)」が入力されています。

B3セルに入力されている文字列「E5」のセル番号をINDIRECT関数が参照して「社会」という文字が表示されています。

エクセルのINDIRECT関数の使い方
エクセルのINDIRECT関数の使い方

このように、INDIRECT関数を使用すると数式を変更しないで、参照するセルを間接的に変更することができます。

普段は活躍しない関数ですが、2段階プルダウン、3段階プルダウンの設定の時に役立ちます。

INDIRECT関数を使った実例を詳しくもっと知りたい方は、以下の記事を参考にしてみてください。

3段階プルダウンを設定する方法

それでは、連動する3段階プルダウンの設定方法を紹介します。

今回は、「部門」・「課」・「担当者名」の3つの項目を使ったプルダウンの設定を紹介します。

3つのプルダウン(イメージ図)
3つのプルダウン(イメージ図)

各ステップごとに手順を載せていますので、手順1~手順5に沿って作業してください。

手順1.プルダウンリストを準備

まずは、1つ目のプルダウンで選択する「部門」と2つ目のプルダウンで選択する「課」1つの表に纏めます

このリストの並びがプルダウンリストの表示順に影響します。プルダウンの上側に表示したい場合は、部門は左側に、課は上側に入力してください。

2段階目のプルダウンのリストを準備
2段階目のプルダウンのリストを準備

次に、隣の空いたスペースに、2つ目のプルダウンで選択する「課」と課に所属する「担当者名」を1つの表に纏めます。

3段階目のプルダウンリストを準備
3段階目のプルダウンリストを準備

2つの表をそれぞれ異なるシートに作成しても問題ありません。

以上で、手順1の作業は完了です。

手順2.1つ目のプルダウンを設定

続いて、「部門」列にプルダウンを設定します。

プルダウンを設定するセルをクリックしてから、「データ」タブの「データの入力規則」をクリックします。

『データの入力規則』を選択
『データの入力規則』を選択

「データの入力規則」画面の「設定」タブを開き、入力の種類は「リスト」を選択します。次にリストの対象範囲を選択するために、元の値の「」ボタンをクリックします。

入力値の種類は「リスト」を選択
入力値の種類は「リスト」を選択

手順1で作成した部門と課を纏めた表から、部門が入力されたセル範囲を選択します。選択し終えたら、「データの入力規則」画面の「↓」をクリックします。

対象リストのセル範囲を選択
対象リストのセル範囲を選択

「データの入力規則」画面の元の値にセル範囲が選択されたことを確認し、「OK」を押して画面を閉じてください。

「元の値」のセル範囲を確認
「元の値」のセル範囲を確認

下のように、1つ目(1段階目)のプルダウンが完成します。

1段階目のプルダウンが完了
1段階目のプルダウンが完了

2行目以降に同じ作業を行う必要はありません。

プルダウンを設定したセルをコピーして、下のセル範囲に貼り付けることで、プルダウンの入力規則も貼り付きます。以上で、手順2の設定は完了です。

プルダウンを下のセルにコピペ
プルダウンを下のセルにコピペ

手順3.リストに『名前』を付ける

ここからが本題です。

今度は、手順1で作成した「部門」「課」「担当者」をまとめた表の各列に「名前を登録します。

上の見出しで紹介したとおりエクセルの「名前」機能を使うと、特定のセル範囲に「名前」を付けて、関数に使用できるようにすることが出来ます。

まず、「総務部」列のB3~B4のセル範囲を選択して、左上の「名前ボックス」に、「総務部」と入力して「Enter」キーを押します。

1列目に「名前」を登録
1列目に名前を登録

登録する「名前」は、必ず表の見出しと同じ名前にしてください。

例えば、「総務」と名前を登録して、表の見出しが「総務部」では、うまくプルダウンが連動しません。

同様に、右側の「経理部」列のC3~C4のセル範囲を選択して、左上の「名前ボックス」に、「経理部」と入力して「Enter」キーを押します。

2列目に「名前」を登録
2列目に名前を登録

この作業を繰り返し、「経理部」列の右側の列に対しても、すべて名前を登録します。

すべての列に「名前」を登録
すべての列に「名前」を登録

「名前」の登録が完了したか不安な場合は、名前を登録したセル範囲を選択してみてください。「名前ボックス」に登録した「名前」が表示されていれば正しく処理できています。

もし、「名前」の登録を失敗してしまった場合は、「数式」タブ→名前の管理から、「削除」をクリックすれば、もう一度、名前の登録をやり直すことができます。

『名前』を削除する方法
『名前』を削除する方法

手順4.2段階目のプルダウンをINDIRECT関数を使って設定

「名前」を設定し終えたら、2段階目のプルダウンを設定します。

手順4-1.「データの入力規則」を選択

まず、2つ目のプルダウンを設定するセルをクリックしてから、「データ」タブの「データの入力規則」をクリックします。

「データの入力規則」を選択
「データの入力規則」を選択

手順4-2.INDIRECT関数を『元の値』欄に挿入

「データの入力規則」画面が開きますので、入力の値の種類は「リスト」を選びます。

次に、元の値の入力欄に=INDIRECT(B3)と数式を入力します。「$B3」や「$B$3」など絶対参照を使わないように気を付けて下さい。

このセルB3は、すぐ左隣の1つ目のプルダウンの対象セルです。

「元の値」にINDIRECT関数を挿入
「元の値」にINDIRECT関数を挿入

上の見出しでも紹介しましたが、INDIRECT関数は参照するセルの文字列を利用して参照を求める関数です。

今回参照するセルとは、B3セルです。

B3セルは1つ目のプルダウンで「名前」登録したものと同じ名称の「総務部」「経理部」「営業部」しか選べないので、間接的に「名前」に登録したセル範囲を参照することが出来ます。

このINDIRECT関数と「名前」の利用により、2つ目のプルダウンは1つ目のプルダウンと連動する、という仕組みです。

手順4-3.2つ目のプルダウンを確認

2つ目のプルダウンを選択すると、下のように1つ目のプルダウンの「部門名」に合った「課」のみが表示されます。

2段階プルダウンのリストが正しいか確認
2段階プルダウンのリストが正しいか確認

手順4-4.プルダウンをコピペ

プルダウンを設定したセルをコピーして、下のセル範囲に貼り付けることで、プルダウンの入力規則も貼り付きます。以上で、2段階プルダウンの設定は完了です。

プルダウンを下のセルにコピペ
プルダウンを下のセルにコピペ

手順5.3段階目のプルダウンをINDIRECT関数を使って設定

最後に、3段階目のプルダウンを設定します。

手順5-1.「データの入力規則」を選択

まず、3つ目のプルダウンを設定するセルをクリックしてから、「データ」タブの「データの入力規則」をクリックします。

「データの入力規則」を選択
「データの入力規則」を選択

手順5-2.INDIRECT関数を『元の値』欄に挿入

「データの入力規則」画面が開きますので、入力の値の種類は「リスト」を選びます。

次に、元の値の入力欄に=INDIRECT(C3)と数式を入力します。「$C3」や「$C$3」など絶対参照を使わないように気を付けて下さい。

このセルC3は、すぐ左隣の2つ目のプルダウンの対象セルです。

「元の値」にINDIRECT関数を挿入
「元の値」にINDIRECT関数を挿入

手順5-3.3つ目のプルダウンを確認

3つ目のプルダウンを選択すると、下のように2つ目のプルダウンの「課」に合った「担当者」のみが表示されます。

3段階プルダウンのリストが正しいか確認
3段階プルダウンのリストが正しいか確認

手順5-4.プルダウンをコピペ

プルダウンを設定したセルをコピーして、下のセル範囲に貼り付けることで、プルダウンの入力規則も貼り付きます。以上で、3段階プルダウンの設定は完了です。

3つ目のプルダウンを下のセルにコピペ
3つ目のプルダウンを下のセルにコピペ

以上の作業により、3つの連動するプルダウンの設定が完了しました。

下のように、左側で選択した項目によって、右側に表示させるプルダウンリストが変化します。

エクセルの3つのプルダウンの連動が完成
エクセルの3つのプルダウンの連動が完成

プルダウンリストを後から追加する方法

設定したプルダウンリストを後から追加する方法を紹介します。

下の表のように、3つ目のプルダウンリストの「勤労課」に「三田」「折川」の2名を追加します。

「プルダウンリスト」を後から追加する方法
「プルダウンリスト」を後から追加する方法

登録した「名前」のセル範囲を変更するために、「数式」タブの「名前の管理」をクリックします。

「名前の管理」画面から、セル範囲を変更したい「勤労課」を選択します。

変更したい名前を選択
変更したい名前を選択

「参照範囲」に入力されているセル範囲を変更して、「閉じる」を押します。

「=部門別人員表!$G$3:$G$5」⇒「=部門別人員表!$G$3:$G$7

「名前」の参照範囲を変更
「名前」の参照範囲を変更

「名前の参照への変更を保存しますか?」と問われるので、「はい」を選択します。

名前の変更を確定
名前の変更を確定

2つ目のプルダウンを開いて、追加した担当者が追加されていれば完了です。

プルダウンリストの追加が完了
プルダウンリストの追加が完了

プルダウンが上手くいかない場合

連動するプルダウンが上手くいかない場合は、以下の2点を確認してみてください。

プルダウンが「=INDIRECT」になる

2つ目と3つ目のプルダウンリストに、「=INDIRECT」と表示されてしまう場合があります。

プルダウンリストにINDIRECT関数が表示
プルダウンリストにINDIRECT関数が表示

この場合、「データの入力規則」画面で設定したINDIRECT関数が正しく入力されていない可能性があります。

特に、「=」や「(」「)」が半角で入力されているか確認してください。

全角で入力すると、このようなエラーが発生してしまいます。

下の画面ショットの場合、「=INDIRECT(B3)」となっており、「)」が全角のためエラーの原因となっています。

INDIRECT関数に全角が混ざっている
INDIRECT関数に全角が混ざっている

プルダウンリストが全て同じになる

2つ目や3つ目のプルダウンリストについて、すべて同じ項目が表示されてしまう場合があります。

プルダウンリストがすべて同じ
プルダウンリストがすべて同じ

この場合、「データの入力規則」画面で設定したINDIRECT関数に、絶対参照の「$」が入力されていないか確認してください。

INDIRECT関数に絶対参照が混在
INDIRECT関数に絶対参照が混在