\今日から出社せず退社/ 退職代行ガーディアン

エクセルのプルダウンを連動させて隣の選択項目が変化するリストを作成しよう!

歩君

エクセルのプルダウンを連動させて、となりの選択項目が変化するリストの作り方を教えてください。

ライクさん

隣のセルを選択したら、次のセルが自動的に絞り込まれると入力が楽になるよね。セルが連動するプルダウンの作り方を教えるね。

エクセルでは、1つ目のプルダウンで「総務部」を選択すると、2つ目のプルダウンでは総務部に所属する「総務課」、「人事課」、「経理課」のみを表示させるといったプルダウンを作成できます。

エクセルのプルダウンを連動させて隣の選択肢が変化する社員リストの作り方
  1. 「総務部」、「製造部」、「営業部」と、各部に所属する「課」の名称を入力した表を作成
  2. データの入力規則のリストを使って、「総務部」、「製造部」、「営業部」を選択するプルダウンを挿入
  3. 元の値にINDIRECT関数を挿入し、②で作成してプルダウンの隣の列に前のセルで選択した各部に所属する「課」のみが表示されるプルダウンを作成する

今回は、社員名簿を作成していますが、表の見出しと項目を変更すれば目的に合ったプルダウンを作ることが可能です。

前のセルで選択した項目に合わせて隣のセルの選択肢が2段階、3段階に変化するリストの作成方法を、わかりやすく解説していますので参考にしてみてください。

目次

エクセルのプルダウンを2段階で連動する社員名簿を作成する方法

エクセルでセルを連動させると、プルダウンを挿入したときに隣のセルの入力項目が自動で変化するリストを作成することができます。

複数のプルダウンを連動させると、選択肢が絞り込まれるので入力ミスを防ぐ効果があります。

今回は社員名簿を例に作成していますが、元の表の内容を変更すれば実際のデータに合わせることが可能です。

隣のセルが自動で連動するプルダウン
隣のセルが自動で連動するプルダウン

複雑そうに見えますが、手順通りに進めれば簡単にできるので挑戦してみてください。

「部署名」の下に各課を入力した表を作成

空いているセルに、「部署名」とその部に所属する「課」の名称を入力した表を作成します。

空いているセルにリストの元データを作成
空いているセルにリストの元データを作成

表の見出し部分に「部署名」、各部の下に所属する「課」の名称を入力した表を作成してください。

各部の下に入力する「課」の数はすべて同じ数にする必要はありません。

「部署名」を選択するプルダウンを挿入する

「部署名」を選択するプルダウンを挿入します。

STEP
D列の「所属」の範囲を選択
1段めのプルダウンの範囲を選択
1段めのプルダウンの範囲を選択

所属部署を入力する「所属」の範囲を選択します。

STEP
「データの入力規則」を選択
「データの入力規則」を選択
「データの入力規則」を選択
  1. 「データ」タブをクリック
  2. 「データの入力規則」のアイコンを押す
  3. 「データの入力規則」を選択
STEP
条件を入力
「データの入力規則」のダイアログボックス
「データの入力規則」のダイアログボックス
  • 「設定」タブをクリック
  • 入力値の種類の下向き矢印をクリックして「リスト」を選択
  • 元の値の枠内をクリック
  • 1段めの項目範囲「K4:M4」をドラッグ
  • 「OK」をクリックする
STEP
「所属部署」を選択するプルダウンを挿入できた
1段めのプルダウンが挿入された
1段めのプルダウンが挿入された

1段めの「総務部・製造部・営業部」を選択するプルダウンを挿入することができました。

各部に所属する「課」を選択するプルダウンを挿入

次に、各部に所属する「課」を選択するプルダウンを挿入します。

STEP
「課」を入力する範囲を選択して「データの入力規則」をクリック
2段めのプルダウンの範囲を選択して「データの入力規則」を押す
2段めのプルダウンの範囲を選択して「データの入力規則」を押す
  1. 「課」のプルダウンを挿入する範囲を選択
  2. 「データ」タブをクリック
  3. 「データの入力規則」のアイコンの下向き矢印をクリックする
  4. 「データの入力規則」を押す
STEP
データの入力規則の「元の値」にINDIRECT関数を挿入
元の値に「INDIRECT関数」を挿入
元の値に「INDIRECT関数」を挿入
  • 入力値の種類を「リスト」に変更
  • 元の値に「=INDIRECT(D6)」と入力
  • 「OK」をクリック
=INDIRECT(D6)」
ライクさん

INDIRECT関数の引数のセル番地は青枠のセル番号を指定するよ。

STEP
表示されたメッセージ画面の「はい」をクリックする
表示されたメッセージの「はい」を押す
表示されたメッセージの「はい」を押す

データの入力規則の「OK」をクリックすると、「元の値はエラー値と判断されます。続けますか?」というメッセージが表示されます。
この画面が表示されたら、「はい」をクリックしてください。

STEP
D列の選択した項目に合わせてE列が変化するプルダウンを挿入できた
変化するプルダウンが挿入された
変化するプルダウンが挿入された

D列で選択した項目に合わせて、E列の項目が変化するプルダウンを挿入することができました。


INDIRECT関数は、参照するセルをずらす関数です。
INDIRECT関数を使うと、数式自体は変更せずに数式内で使用している参照セルを変更できます。

2段階のプルダウンを応用して3段階に連動するリストを作成する手順

2段階だけではなく3段階で連動するプルダウンリストを作成することもできます。

3段階で連動するプルダウン
3段階で連動するプルダウン

この画像のように、ブロックを選択すると「支店名」、「社員名」が3段階で絞り込まれるプルダウンを作成してみましょう。

3段階のプルダウンを作成するときは、表をテーブルに変換して使用します。

ライクさん

今回は手順がわかりやすいように、同じシートに入力する表とプルダウンに使う表を作成する方法で紹介するね。

3段階のプルダウンを作成するための準備

プルダウンを使ってデータを入力する表とプルダウンのリストの元になる表をそれぞれ作成します。

3段階のプルダウンを作成するための準備は以下の3つです。

  • プルダウンを使って入力する表の作成
  • 各ブロックに所属している支店名を記入した表と支店に所属している社員名簿の表を作成
  • 支店名の表と支店に所属している社員名簿の表をテーブルに変換して、名前をつける

プルダウンを使って入力する表を作成

プルダウンを使って入力する表を作成します。

プルダウンを使って入力する表
プルダウンを使って入力する表

「ブロック」、「支店」、「氏名」という見出しをつけた画像のような表を作成しておきましょう。

各列にはデータの入力規則を使って、プルダウンで入力できるリストを挿入します。

各ブロックに所属している支店と支店に所属している社員名簿の表を作成

各ブロックに所属している支店と支店に所属している社員の名簿を作成します。

各ブロックに所属している支店と支店に所属している社員名簿の表
各ブロックに所属している支店と支店に所属している社員名簿の表

ブロック名を見出しにして、ブロックに所属する支店名を同じ列に入力してください。

その隣に、支店名を見出しにして、各支店に所属している社員の氏名を入力しましょう。

ライクさん

プルダウンに使用する表は、それぞれ別のシートに作成することもできるよ。

作成した表をテーブルに変換して名前をつける

作成した表をテーブルに変換して、名前をつけておきます。

STEP
ブロック別の支店名の表を選択して「テーブルとして書式設定」をクリックする
ブロック別の支店名の表を選択して「テーブルとして書式設定」をクリック
ブロック別の支店名の表を選択して「テーブルとして書式設定」をクリック
  • ブロック別の支店名の表を選択
  • 「ホーム」タブをクリック
  • 「テーブルとして書式設定」を押す
  • 任意の書式をクリックする
ライクさん

上記と同じスタイルを選択すると、自分で選択した見出しの色が使えるからおすすめだよ。

STEP
テーブルの範囲を確認して「OK」をクリック
テーブルの範囲を確認して「OK」をクリック
テーブルの範囲を確認して「OK」をクリック

表示されたテーブルの範囲を確認して「OK」をクリックしてください。

STEP
社員名簿の表もテーブルに変換する
社員名簿もテーブルに変換する
社員名簿もテーブルに変換する

社員名が書かれている表の範囲を選択して、同じようにテーブルに変換しておきましょう。

STEP
2つの表がテーブルに変換された
2つの表がテーブルに変換された
2つの表がテーブルに変換された

2つの表をテーブルに変換することができました。

STEP
変換したテーブルに名前をつける
変換したテーブルに名前をつける
変換したテーブルに名前をつける
  • ブロック別の支店名が入力されている表の範囲を選択
  • 「数式」タブをクリック
  • 「選択範囲から作成」をクリックする
STEP
「左端列」のチェックを外して名前をつける
「左端列」のチェックを外して「OK」を押す
「左端列」のチェックを外して「OK」を押す
  • 「左端列」のチェックを外す
  • 「OK」をクリックする
STEP
社員名簿の表も同じ手順で名前をつける
社員名簿にも名前をつける
社員名簿にも名前をつける

同じ手順で社員名簿の表を選択しておきます。

  • 「選択範囲から作成」をクリック
  • 「左端列」のチェックを外す
  • 「OK」をクリックする
ライクさん

「上端行」のみにチェックを入れると、見出し部分が名前として登録されるよ。

これで、3段階に変化するプルダウンを作るための準備は完了です。

「ブロック」の列に「関東」、「関西」、「九州」を選択するプルダウンを挿入

「ブロック」の列に「関東」、「関西」、「九州」を選択するプルダウンを挿入します。

STEP
「ブロック」の列を選択して、データの入力規則をクリックする
「ブロック」の列を選択して、データの入力規則をクリックする
「ブロック」の列を選択して、データの入力規則をクリックする
  • 「ブロック」の列を選択
  • 「数式」タブをクリック
  • データの入力規則のアイコンの下向き矢印をクリックする
  • 「データの入力規則」を選択
STEP
入力値の種類と元の値を入力
入力値の種類と元の値を入力
入力値の種類と元の値を入力
  • 入力値の種類を「リスト」に変更
  • 元の値の枠内をクリックする
  • ブロック名が記載されている「E1:G1」の範囲をドラッグする
  • 「OK」をクリック
ライクさん

セルの範囲を選択すると、元の値の範囲は自動的に絶対参照で入力されるよ。

STEP
「ブロック」の列にプルダウンが挿入された
「ブロック」の列にプルダウンが挿入された
「ブロック」の列にプルダウンが挿入された

「A2」クリックして、プルダウンの三角を押すと「関東ブロック」、「関西ブロック」、「九州ブロック」の文字が選択できるようになりました。

範囲選択したあとにプルダウンを挿入したので、A列のすべてのセルにプルダウンが挿入されています。

「支店」の列に支店名を選択するプルダウンを挿入する

「支店」の列に支店名を選択するプルダウンを挿入します。

「支店」のプルダウンと「氏名」のプルダウンを挿入するときは、元の値にINDEIRECT関数を使います。

STEP
「支店」の列を選択して、データの入力規則をクリックする
「支店」の列を選択して、データの入力規則をクリックする
「支店」の列を選択して、データの入力規則をクリックする
  • 「支店」の列を選択
  • 「データ」タブをクリック
  • データの入力規則のアイコンの下向き矢印を押す
  • 「データの入力規則」を選択する
STEP
INDIRECT関数を使って「元の値」を入力
INDIRECT関数を使って元の値を入力
INDIRECT関数を使って元の値を入力
  • 入力値の種類を「リスト」に変更
  • 元の値の枠内をクリックして「=INDIRECT(A2)」と入力
  • 「OK」をクリック
=INDIRECT(A2)
ライクさん

INDIRECT関数の引数に入れるセル番地は、ブロックの列の先頭のセルを指定してね。

STEP
表示されたメッセージ画面の「OK」をクリック
表示されたメッセージ画面の「はい」をクリック
表示されたメッセージ画面の「はい」をクリック

「元の値はエラーと判断されます。続けますか?」というメッセージが表示されるので、「はい」をクリックしてください。

STEP
「ブロック」で選択した項目に該当する支店名だけが表示されるようになった
ブロックで選択した項目に該当する支店名だけが表示されるようになった
ブロックで選択した項目に該当する支店名だけが表示されるようになった

「A列」のブロックで選択した項目に該当する支店名だけが表示されるプルダウンが挿入されました。

「氏名」の列に社員名を表示するプルダウンを挿入

同様にして、「氏名」の列に選択した「支店」に該当する社員の氏名だけが表示されるプルダウンを挿入していきます。

STEP
「氏名」の列を選択して、データの入力規則をクリックする
「氏名」の列を選択して、データの入力規則をクリックする
「氏名」の列を選択して、データの入力規則をクリックする
  • 「氏名」の列を選択
  • 「データ」タブをクリック
  • データの入力規則のアイコンの下向き矢印を押す
  • 「データの入力規則」を選択する
STEP
INDIRECT関数を使って「元の値」を入力
INDIRECT関数を使って「元の値」を入力
INDIRECT関数を使って「元の値」を入力
  • 入力値の種類を「リスト」に変更
  • 元の値の枠内をクリックして「=INDIRECT(B2)」と入力
  • 「OK」をクリック
=INDIRECT(B2)
STEP
表示されたメッセージ画面の「OK」をクリック
表示されたメッセージ画面の「はい」をクリック
表示されたメッセージ画面の「はい」をクリック

表示されたメッセージ画面の「はい」をクリックしてください。

STEP
選択した支店に所属している社員名だけが表示されるプルダウンが挿入された
支店に所属している社員名だけが表示された
支店に所属している社員名だけが表示された

支店に所属している社員名だけが表示されるプルダウンを挿入することができました。

今回は、3段目までのプルダウンの作り方を紹介しましたが、同じように作成すれば3段以上のプルダウンを作成することも可能です。

IF関数とVLOOKUP関数でセルを連動して文字や数字が自動で表示されるプルダウンを作成する

歩君

商品名を選択したら自動で単価が表示されるようにすることはできますか?

ライクさん

そういう場合は、プルダウンとVLOOKUP関数を組み合わせてみよう!

セルを連動させて自動入力されるプルダウン
セルを連動させて自動入力されるプルダウン

プルダウンとVLOOKUP関数を組み合わせて連動させておくと、プルダウンで選択したテキスト名の単価を自動表示できます。

今回は、VLOOKUP関数だけを挿入した場合とIF関数を組み合わせた場合の違いをわかりやすくするために、VLOOKUP関数を挿入したあとにIF関数を追加する手順で紹介しています。
単価のセルに計算式を入力するときに、最初からIF関数とVLOOKUP関数を組み合わせておけば、計算式をコピーし直す必要はありません。

STEP
A列にテキスト名が表示されるプルダウンを挿入
A列にプルダウンを挿入
A列にプルダウンを挿入

A列にテキスト名が表示されるプルダウンを挿入していきます。

STEP
プルダウンを挿入する範囲を選択して「データの入力規則」をクリックする
プルダウンの挿入範囲を選択して「データの入力規則」を押す
プルダウンの挿入範囲を選択して「データの入力規則」を押す
  • プルダウンの挿入範囲を選択
  • 「データ」タブをクリックする
  • 「データの入力規則」のアイコンをクリック
  • 「データの入力規則」を選択する
STEP
リストを選択して「元の値」を入力
リストを選択して「元の値」を入力
リストを選択して「元の値」を入力
  • 入力値の種類を「リスト」に変更
  • 元の値の枠内をクリック
  • テキスト名が入力されている範囲をドラッグする
  • 「OK」をクリックする
STEP
単価のセルにVLOOKUP関数を挿入
単価のセルにVLOOKUP関数を挿入
単価のセルにVLOOKUP関数を挿入
  • 「B4」のセルをクリック
  • 「=VLOOKUP(A4,$G$4:$H$11,2,0)と入力
=VLOOKUP(A4,$G$4:$H$11,2,0)

VLOOKUP関数は、指定したセルに文字が入力されると引数の範囲内の表にある文字に対応した列の値を返す関数です。

VLOOKUP関数の構文:=VLOOKUP(検索値,範囲,列番号,検索の型)

検索値:A4(プルダウンで入力するセル番地)
範囲:テキスト名と単価が入力されている表の範囲(表の範囲は絶対参照で指定する)
列番号:単価が入力されているのは2列目なので「2」を指定
検索の型:完全一致を意味する「0」を指定

STEP
テキスト名を選択すると単価が表示された
単価が自動で入力された
単価が自動で入力された

プルダウンからテキスト名を選択すると、単価が自動で入力されました。

STEP
計算式をコピーする
計算式をコピーする
計算式をコピーする

VLOOKUP関数を挿入した「B4」のセルをクリックします。

セルの右下の■にマウスポインタを合わせて「B12」のセルまでドラッグして、計算式をコピーしましょう。

STEP
エラーが表示される
エラーが表示された
エラーが表示された

VLOOKUP関数をコピーすると、青枠のような「#N/A」というエラーが表示されます。

「#N/A」は、値が使用できないという意味のエラーです。

A列に挿入したプルダウンで項目が選択されていると単価が表示されますが、何も入力されていない場合は参照するセルの値が空白になっているため、「#N/A」エラーが表示されてしまいます。

A列が選択されていないときにエラーが表示されないように、VLOOKUP関数にIF関数を追加しておきましょう。

STEP
IF関数を追加する
IF関数を追加する
IF関数を追加する

B4のセルを選択しておきます。

  • VLOOKUPの文字の前に「IF(A4="","",」と入力
  • 計算式の最後に「)」を入力する

IF関数を挿入した後の数式は、以下のようになります。

=IF(A4="","",VLOOKUP(A4,$G$4:$H$11,2,0)
ライクさん

IF関数の引数の「A4="","",」は、もし、A4のセルが空白のときは空白のままにしてねという意味だよ。

STEP
計算式をコピーしなおす
計算式をコピーしなおす
計算式をコピーしなおす

もう一度B4のセルをクリックして、計算式をコピーしなおしておきましょう。

<参考>

D列に単価×数量の計算式を入力しておくと金額の計算結果も自動で表示することができますが、単価のときと同様でB列に何も入力されていないときは「0」または「#N/A」が表示されてしまいます。

計算式の例
計算式の例

金額の列に「=IF(C4="","",B4*C4)」のように数量のC4のセルが空白の時は空白にするというIF関数を組み合わせた計算式を入力しておくと、不要な「0」やエラーが表示されなくなります。

=IF(C4="","",B4*C4)
ライクさん

データが見やすくなるから、試してみてね!

エクセルのプルダウンを連動するに関するQ&A

エクセルで入力したデータを自動反映させる方法を教えてください。

プルダウンで入力したセルを使ったVLOOKUP関数を挿入すると、本文内で紹介したような商品名を入力すると単価が自動入力されます。

詳しい手順は、IF関数とVLOOKUP関数でセルを連動して文字や数字が自動で表示されるプルダウンを作成するを参考にしてみてください。

エクセルで複数のセルを連動させたいのですがどうすればいいですか?

1つめのプルダウンを挿入すると、入力された内容に連動して次のセルの選択項目が変化するプルダウンを作成することができます。

連動するプルダウンを作成したい場合は、2つ目のプルダウンの値にINDIRECT関数を挿入します。

エクセルのプルダウンが連動して自動で隣のセルの入力項目が変わるリストの作り方で詳しく解説していますので、こちらをご覧ください。

3段階以上のプルダウンを作成したい場合は、2段階のプルダウンを応用して3段階に連動するリストを作成する手順を参考にしてみてください。

エクセルでセルを連動させる関数はありますか?

入力する内容によってセルを連動させたいときに使用する関数は変わります。

例えば、プルダウンが2段階で変化するようにリストを作成したい場合は、2つ目のプルダウンの元の値にINDIRECT関数を使います。

商品名を入力すると自動で単価が表示されるように連動させたい場合は、VLOOKUP関数と組み合わせます。

本文では、INDIRECT関数を使って連動するプルダウンの作り方と、IF関数とVLOOKUP関数でセルを連動して文字や数字が自動で表示されるプルダウンを作成する2つの方法を紹介していますので、参考にしてみてください。

エクセルのプルダウンを連動させて入力しやすいデータを作成してみよう!

エクセルのプルダウンを連動させる方法は1つではありません。

本記事で紹介したように、セルを連動するとプルダウンの選択項目を変化させたり、別のセルに文字や数字が入力させたりできます。

データに合わせてうまく活用してみてください。

最後に、2段階に変化するプルダウンを使った社員名簿の作り方をおさらいしておきましょう。

おさらい
  1. 「総務部」、「製造部」、「営業部」と、各部に所属する「課」の名称を入力した表を作成
  2. 「総務部」、「製造部」、「営業部」を選択するプルダウンを挿入
  3. 元の値にINDIRECT関数を使い、②で作成してプルダウンの隣の列に前のセルで選択した各部に所属する「課」のみが表示されるプルダウンを挿入する

エクセルのプルダウンは、連動させることでさらに便利に使うことができます。

セルを連動する方法をマスターして、入力しやすい書類を作成してみてください。

エクセルのプルダウンは、セルを連動させるだけではなく、プルダウンで入力した文字を使って色分けやソート機能を追加することができます。

他の関数や条件付き書式の機能と組み合わせる方法もぜひチェックしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
目次