こんにちは、管理部のゆりえです(´-`*)
だんだんと涼しくなってきましたね、いかがお過ごしでしょうか。季節の変わり目は体調を崩しがちなので休養をしっかり取りましょう。
さて、インターネットで何かの申し込みフォームを入力するとき、住所の欄で「都道府県」を1つ選択すると、となりにその県の市区町村の選択肢が自動で出てくることってありますよね。
これ、すごいなー。便利だなー。エクセルのプルダウンでも同じことがやりたいなーと思い、見つけたやり方です。
エクセル(Excel)初心者向け♩プルダウンリストをマスターしよう
上の記事では、「プルダウンリスト」の設定方法を説明いたしましたが、今回はそれを少し応用してみたいと思います。
▼エクセルはもっと便利にできる エクセル(Excel)で「名前」を管理すれば、数字を使わなくても関数が使える♩ エクセル(Excel)の便利なショートカットキーまとめ エクセル(Excel)のショートカット作成やリボンの非表示などのカスタマイズ術5選
2つのプルダウンリストを連動させる
動的に選択肢を出すなんて、難しい数式が必要なんじゃない?と思うかもしれませんが、そんなことないんです!
以前紹介した「名前」という機能を使って、簡単に2つのプルダウンリストを連動させてみましょうー。
1. 表を作成する
たとえば、こういう感じの表を作成するとします。
この表のなかで、「ユニット(職種)」と「担当者」の2か所をプルダウンで選びたい! 選んだユニットと連動して、担当者の選択肢が変わるようにしたい!とします。
2. リストの元データに「名前」を付ける
まず、選択肢の元となるリストを作ります。
例の場合ですと別シートで作成していますが、同じシート内でも大丈夫です^^
タイトルを付けて表形式にすることで、編集をする場合や他の人が見る場合にわかりやすくなります。
ここで活躍するのが前回説明した「名前」の機能です。
プルダウンリストは、「名前」を使って選択肢を設定すると便利なので、必要なリスト毎に名前をつけます。
まずは1つ目の「ユニット(職種)」リスト。A1:D1のユニット名の部分を選択し、エクセルエリアの左上にある「名前ボックス」に「ユニット」と入力し、範囲に名前をつけます。
次に、2つ目の「担当者」リストは、「ユニット」のリストの数だけ「名前」を設定します。今回は4つです。
まずは「ディレクター」です。A1:A10を選択し、「数式」タブ⇒「定義された名前」の「選択範囲から作成」⇒上端行にチェックが付いた状態で「OK」で完成です。
A2:A10に「ディレクター」という名前が付きました。
同様に、B1:B10、C1:C10、D1:D10をそれぞれ選択し、1行目のユニット名をつけていきます。前回も紹介しましたが、「名前」機能の便利なところは、タイトルの入力をすることなく勝手に名前をつけてくれるところです。便利ですねー。
付けた「名前」たちは、「数式」タブ⇒「名前の管理」で出てくるダイアログで確認・編集することができます。
3. プルダウンリストを設定する
さて、いよいよメインの表作成にうつります。
B列の「ユニット」欄には、メンバーの所属ユニットをプルダウンリストから選択できるよう設定します。
B2を選択し、リボンの「データ」タブ⇒「データの入力規則」⇒表示されたダイアログにて、「入力値の種類」で「リスト」を選択し、「元の値」の部分には「=ユニット」と入力します。
これで、B列のプルダウンリストには、「ユニット」という名前の範囲にある4種類のユニット名が出てくるようになりました。
次に、「担当者」欄では、選んだユニットによって、そのユニットに所属する個人名がプルダウンリストに出てくるようにします。
今回の目的である、担当者を動的にするために、プルダウンの設定も動的にしましょう。
まず、C2のセルにプルダウンリストを設定します。
このとき、「データの入力規則」ダイアログのなかで、「入力値の種類」は同様に「リスト」を選択し、「元の値」には何も考えずに「=INDIRECT(B2)」と入力します。それだけ。ただそれだけです。
B2でディレクターを選んだ場合
B2で選んだユニットに連動して、C2ではそれぞれ所属している担当者だけがプルダウンリストで選べるようになりました。簡単ですねー。
B2でエディターを選んだ場合
4. プルダウンリストの設定をコピー
これでプルダウンリストの連動が完成しました。あとはB2のセルをB3~B11へ、C2のセルをC3~C11へコピーすれば完成です!
これで完成です! もう、ものすごく簡単ですね!
※実際に使うときは、「B2」は今回の場合ですので、「=INDIRECT(xx)」のxx部分に、連動させたい1つ目のプルダウンの住所を記入してください。
おまけ:INDIRECT関数を使う理由
さて、これでプルダウンリストの連動はマスターしました。ここまでの設定を覚えれば問題はないのですが、なぜこんな関数を使うの?と思った方もいると思います。
C2のプルダウン設定のお話に戻りますが、プルダウンリストを連動させるには、「元の値」のところに表示させたいリストの「名前」を入力すればいいわけです。
ユニット欄のB2で選択したユニットが、そのユニットメンバーリストの「名前」とイコールなので、「元の値」欄に動的になるような記入をすれば、選択肢が動的になるはずですね。
では、なぜ、単純に「=B2」と入力しないのでしょうか?
「元の値」欄に「=B2」と設定してみましょう。
B2で「デザイナー」を選択したら、C2の選択肢はデザイナー7人の名前……ではなく、「デザイナー」という1択になってしまいました。
なぜだーーー。
私はこの壁に激突したとき、困り果ててしまいました。
「元の値」に「=デザイナー」と入力すると、ちゃんと7人の名前が出てきます。つまり、プルダウンの設定において、「名前」機能を使うことに問題はないのです。
しかし、「=B2」(B2=”デザイナー”)とすると、きちんと「名前」の範囲を読み込んでくれません。エクセルは、直打ちの「デザイナー」は「名前」として認識するけれど、読み込みの「デザイナー(=B2)」は「B2の値である”デザイナー”」として認識してしまうようで、「名前」として認識してくれないのです。困ったなあ。
そこで、いろいろ調べてたどり着いたのが、今回の「INDIRECT関数」です。INDIRECT関数は、指定される文字列への参照を返す関数です。この関数を使うことにより、「=INDIRECT(B2)」がきちんと「デザイナー」として認識され、その「名前」がついたリストを表示することができるようになりました。
参考:INDIRECT 関数
https://support.office.com/ja-jp/article/INDIRECT-%E9%96%A2%E6%95%B0-474b3a3a-8a26-4f44-b491-92b6306fa261
さいごに
2つのプルダウンの連動方法についてまとめましたがいかがでしたでしょうか。思ったより簡単な設定でできるので、ぜひ参考にしていただければ幸いです。
エクセルたのしい(´-`*)
ありがとうございました。
- エクセルに関する記事はこちら
-
- エクセル(Excel)のショートカット作成やリボンの非表示などのカスタマイズ術5選
- エクセル(Excel)の便利なショートカットキーまとめ
- エクセル(Excel)初心者向け♩プルダウンリストをマスターしよう
- エクセル(Excel)で「名前」を管理すれば、数字を使わなくても関数が使える♩
- Excel WORKDAY関数で営業日を簡単に計算する方法
- Excelのファイルにパスワードを設定する方法(PowerPointなどにも応用可)
- エクセル(Excel)のリボンをカスタマイズしてオリジナルメニューを作ろう
- Excelで日付や時刻を表示するときに便利な関数をご紹介します!
- 仕事に役立つ!Excelのエラー対処法まとめ
- 【エクセルで効率化!】セルの中で改行したい&改行を消したいとき