【EXCEL】2つのプルダウンリストを連携させる!

スポンサーリンク

2つのプルダウンリストを連携させる

EXCELでアンケート表とか、選択リストを作ってるとき、1つのプルダウン項目の答えを利用して、次のプルダウンリストをそれぞれ別のものに変えたい時ありますよね?今日はこれのやり方を説明します。完成イメージはこちらです。

・C12セルで選んだ商品によって、C13セルのプルダウンリストが変更される

・オプションテーブルのオプションを増やすと、プルダウンリストに反映される

作業の流れ

1.商品選択のプルダウンを設定する

2.オプション用のプルダウンの元データをテーブルで設定する

3.オプション選択ようのプルダウンをINDIRECT関数で設定する

ステップは上記の3つです。

1.商品選択のプルダウンを設定する

まずはこんな感じでひな形を作ります。

「B3:B7」の範囲が、C12に設定したい商品選択のプルダウンリストです。入力規則の機能を使ってプルダウンを設定しましょう。

はい以上ですね。以前に入力規則の記事も書いてますので分からない方はそちらも参考にしてください。

EXCEL データの入力規則
セルに入力出来る値を制限したり、データの入力を補助してくれる「データの入力規則」 データの入力規則 複数の人に配布して、データを入力してもらい、集計する。EXCELを使ってする業務にはそんな場続きを読む

2.オプション用のプルダウンの元データをテーブルで設定する

次に、オプション用の元データを設定していきます。今回はこれがポイントですのでしっかり確認してください。

ポイント1:テーブル形式に変換する。

ポイント2:設定したテーブルの名前を商品選択で設定したプルダウンリストの中身の項目名と同じにする。

動画で一気に設定工程を見てみましょう。

こんな感じで設定出来ましたね。

ハンバーガーテーブル・カレーテーブル・唐揚げテーブル・カツ丼テーブルを作成して、各々のテーブルの名前を、商品名のプルダウンで設定した項目名に変更します。

ハンバーガーテーブルであれば、ハンバーガーテーブルの中をポチッと押すと右上に「テーブルデザイン」というタブが出てきます。一番左のリボンに「テーブル名:」という項目がありますのでその中を「ハンバーガー」と変更します。カレーテーブル・唐揚げテーブル・カツ丼テーブルも同じ様に設定します。

この設定した名前を、次に説明する「INDIRECT関数」で使用します。

3.オプション選択用のプルダウンをINDIRECT関数で設定する

最後に、オプション選択用のプルダウンを設定していきます。先に動画で見てください。

商品選択のプルダウンを設定した時と同じ様に、C13セルに入力規則のプルダウンリストを設定していきます。

「入力規則の種類」は「リスト」。ここまでは同じですね。そしてここからINDIRECT関数が登場です。

「元の値」に「=INDIRECT($C$12)」と入力して決定します。

「元の値はエラーと判断されます。続けますか?」というように、ミスったか!?と思うメッセージが流れますが、無視して「はい」を選択してください。

これで設定は完了です。

「INDIRECT関数」は、難しい言葉でいうと、「引数に指定されたオブジェクトを返す」という関数なのですが、それではよくわからないと思いますので噛み砕いて解説します。

=INDIRECT(参照文字列)

オブジェクトというのは、モノと考えてください。EXCELで言うとワークブック自体とか、ワークシート自体とか、セルもオブジェクトですね。今回設定した「テーブル」もオブジェクトの一つです。オブジェクトには名前があります。セルでいうとおなじみの「A1」とか「B4」とか、これが名前です。今回設定してもらったテーブルも、一つずつ名前を設定してもらったと思います。「ハンバーガー」とか「唐揚げ」とかですね。「ハンバーガー」という名前のオブジェクトを作っていた訳です。

INDIRECT関数は、引数(上で言う参照文字列)にこのオブジェクトの名前を指定することで、そのオブジェクトを返してくれます。

今回はC12セルで選択する名前が、テーブルで設定した名前と同じになっていますので、入力規則で指定した「=INDIRECT($C$12)」の「$C$12」部分が、選択によって「ハンバーガー」になったり、「唐揚げ」になったりすることになります。

C12で「ハンバーガー」を選んでいると「=INDIRECT(”ハンバーガー”)」

C12で「唐揚げ」を選んでいると「=INDIRECT(”唐揚げ”)」という形になるのが分かると思います。

このように、入力規則のリストに、テーブルの名前で設定することによって、そのテーブル名の変更と連動させて、表示されるプルダウンリストの中身を変えることができるという仕組みです。

ちなみに、"名前"はテーブルではなく、普通の範囲につける事もできるので、そいうった設定も可能なのですが、テーブル形式で設定することによって、元データのリスト項目の変更や増減にも対応が可能なので、今回はテーブルに名前をつけました。

※過去記事:入力規則の元データをテーブルにすると、項目の増減が楽ちん!

【EXCEL】プルダウンリストを自動的に増えるようにしたい!
入力規則、プルダウンリストの元データはテーブルにするのが便利 入力規則で設定したプルダウンリスト、リスト項目の内容が変更になったり、増減したりした時設定のし直しが、面倒だと感じますよね?テーブル形式続きを読む

まとめ

「INDIRECT関数」は、オブジェクトの名前を指定することで、その参照先を返しますので、このようにテーブルだけでなく、普通にセルの名前を指定することで、そのセルの値を返すことも出来ます。

この関数は、いろんな組み合わせのアイデアで威力を発揮するので、使いこなせると面白いですよ!