エクセルで複数のプルダウンリストを連動(名前定義を使わない方法)

例えば、次のように、
大項目→小項目と入力させたいような場合には、
複数のプルダウンリストが連動すると便利です。

pulldown4_1_1

こういう場合、
多くのホームページで、
「名前定義とindirect関数」を組み合わせた方法が紹介されていますが、
今回は、それとは違う方法を紹介したいと思います。

エクセルで複数のプルダウンリストを連動させる

なお、今回は、
話を簡単にするために、

小項目のプルダウンリストは、項目数を「固定」する
(=余計な空白が出てくる可能性がある)
という前提で話をしていきます。

今回は、
E列~M列までの合計9列分を、
小項目のプルダウンリストとして
表示させるようにしたいと思います。

大項目のプルダウンリストは適当に作る

大項目のプルダウンリストは、
D2セル~D5セルを使って表示させます。

これは、
前の記事で書いた方法がそのまま使えますので、
作り方は省略します。

pulldown4_1_2

小項目のプルダウンリストはどの部分を表示させればいい?

さて、
次に、問題の小項目のほうです。

小項目のプルダウンリストですが、

例えば、
A2セル(大項目)に「魚」と入っている場合、
プルダウンリストとしては、
次の部分を表示させたいわけです。

pulldown4_1_3

当然、
A2セルに他の値が入れば、
プルダウンリストとして表示させたい部分は、
他の行に変わります。

pulldown4_1_3_2

このように、
選択したい行が「動的」に変わる場合にも、
offset関数が使えます。

offset関数とmatch関数を組み合わせる

offset関数とmatch関数を組み合わせて、
「元の値」欄に、次のような計算式を入れてみましょう。

pulldown4_1_4

※「A2」の部分だけは相対参照です。
 マウスでセルを選択していると、勝手に絶対参照になるので、
 この部分だけ、手で相対参照に変更してください。

これで、小項目のプルダウンリストを作ることができます。

pulldown4_1_5

この計算式は何をやっているのか?

今回も、
ポイントになるのは、offset関数です。

offset関数は、次のような動きをしています。

pulldown4_0_1

結局、
match関数で大項目で選択された内容に応じて、
「どの行を表示するか」を取得することで、
小項目のプルダウンを動的に変化させているのです。

名前定義を使う方法との比較

小項目のプルダウンリストを表示する方法として、
「名前定義」を使う方法が一般的です。

その方法と比較すると、
今回の方法は、
関数の使い方が、やや複雑なのが欠点ですが、
次のようなメリットがあります。

名前定義をしないで済む

名前定義をすると、名前の管理が面倒なので、
使わないでいい場面なら使わないほうがいいです。

プルダウンリストへの大項目の追加が簡単

名前定義をする方法だと、
プルダウンリストに、大項目を追加した場合に、
名前定義のメンテナンスをしないといけません。

今回の方法であれば、そのような特別なメンテナンスは不要です。

私個人としては、
メリットがかなり大きいので、
名前定義を使うよりは、今回紹介した方法を使うことをおすすめします。

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。