エクセルのプルダウンを作成する際には、別シートの内容を反映させて項目にしたい場合もあるかもしれません。エクセルのプルダウンと別シートの値が連動できると、リスト作成でもその後の入力でも便利ですよね。今回は、プルダウンを他のシートから別のセルを参照するあるいは連携させる方法をご紹介します。
エクセルのプルダウンを作成した際には、他のシートに書かれている数値や文字列を選択肢の一つとして利用したいこともあるかもしれません。同じシート内に書かれている項目であれば比較的にイメージはしやすいですが、別シートでもできると一気に幅が広がりますので、プルダウンを反映させるやり方を見ていきましょう。今回の例では、[プルダウン]のシートにリストを作成するにあたり、別シートである[データ]のシートにある値を項目として使う場合を考えてみます。
序盤はエクセルでプルダウンを作成する手順と同じです。ドロップダウンリストを作成するシートを開き、作成したいセルまたは範囲を選択し、『データ』⇒「データツール」の中の『データの入力規則』を押しましょう。「データの入力規則」と書かれたダイアログボックスの「設定」で「入力値の種類(A)」はリストを選択します。(例では[プルダウン]シートを開いてC9にリストを作成しました。)
通常と異なるのは、「元の値(S)」と書かれた部分の空欄に入力する内容です。まず、空欄の右側の□を押すと(1⃣)、別の細長いダイアログボックスが出てきます。ダイアログボックスの下側にある空欄をクリックして(2⃣)、反映させたいデータが書かれているシート名をエクセルシートの左下部分から選択しましょう(3⃣)。
そして、エクセルのプルダウンに選択肢として表示させたい、別シートのセル範囲をクリックします(4⃣)。条件式は『=シート名!セル番地:セル番地』です。『Enter』を押すと元の画面に戻ります(5⃣)ので、『OK』を押して反映されているかを確かめましょう(6⃣)。
直接入力することもでき、「元の値(S)」と書かれた部分の空欄をダブルクリックして入力していきます。条件式は同様に『=シート名!セル番地:セル番地』です。例であれば『=データ!$F$3:$F$11』(絶対参照の$が付いているのに注意)と入力すると、画像のようにデータの指定範囲に書いてある地方名が表示できました。
プルダウンを作成する際には、他のシートからも値を取ることができるとわかったので、今度は複数のプルダウンを連動させる、あるいは他のセルに入力した内容に応じてプルダウンのリストの項目を変える場合を考えてみましょう。たとえば、あるプルダウンで『近畿』(親要素と呼びます)を選ぶとき、別のプルダウンの選択肢が『滋賀県・京都府・大阪府・兵庫県・奈良県・和歌山県』(子要素と呼びます)になるように別のシートからデータを取得したいとしましょう。
まずは、エクセルのシート上から、子要素に該当する項目を範囲選択し、上側にある『数式』⇒「定義された名前」内の『名前の定義』を順番に選びます。例では、『滋賀県・京都府・大阪府・兵庫県・奈良県・和歌山県』になるようにしたいので、範囲選択するのはG8:L8です。
次に、「新しい名前」と書かれたダイアログボックスの「名前(N)」の部分に親要素として指定したい選択肢(例では『近畿』)を1つ入力しましょう。「参照範囲(R)」には先ほど範囲選択したセル番地およびシート名も自動的に表示されていますので、先ほどのように別シートの名前を入力する必要はありません。『OK』を押してダイアログボックスを閉じましょう。
プルダウンを作成する流れは先ほどと同様です(反映させる方法を参照)。親要素のプルダウンを先に作ってから、子要素と連動させていきます。子要素のプルダウンを作成したいセルを選択(例ではシート名[プルダウン]のD9)して『データの入力規則』で出てくる編集画面の「入力値の種類(A)」を『リスト』に変更しましょう。「元の値」は『=INDIRECT(最初のプルダウンを作成したセル番地)』とします。今回の例では『=INDIRECT(C9)』です。
『OK』を押して画面を閉じると、「元の値はエラーと判断されます、続けますか?」という警告文が出てきますが、『はい』をクリックしましょう。この表示が出るのは、プルダウンを作成しているセルが空欄になっているためです。データの入力規則では、特定のデータのみを入力できるように設定していて、今回のように「名前の定義」で空白を扱っていない場合には「違うものが入っている」と判断される場合があります。ただ、プルダウンの連動は問題なくできますので、気にせずにそのまま進みましょう。
シートが複数あっても、親要素と同じシートで子要素のプルダウンを表示する場合には、シート名を指定する必要はありません。もし、親要素のプルダウンと子要素のプルダウンのシートが別の場合に限り、『=INDIRECT(シート名!親要素のプルダウンを作成したセル番地)』とシート名を指定する必要がある点は押さえておくと良いかもしれません。
エクセルのプルダウンで別の値と連動させることは、特に選択肢の項目が多い場合に絞りこんで見やすくする際にも使えます。こちらの記事では、当ページよりも詳しいやり方で触れていますので、あわせて参考にしていただけますと幸いです。
プルダウンは英語で「pull down」と表記し、下に引くあるいは引き下げるといった意味があります。エクセルやスプレッドシートなどで使う場合には、右側の▽を押すと複数の選択肢が出てきますよね。そのことから、コンピューターなどでメニューつまりその後の動きの選択肢を提示する形式として呼ばれています。
プルダウンには別の言い方がいくつかあります。プルダウンの別名で有名なのが「ドロップダウン」です。英語の「drop down」は落ちるの意味で使い、▽を押すと下に垂れ下がるように出てくるので落下するイメージがあるのでしょう。他には「リスト」や「メニュー」などが付いて「ドロップダウンリスト」「プルダウンメニュー」などと使われることもあります。
今回は、エクセルなどのプルダウンで選択肢を他のシートの値を使って入力する方法と、プルダウンで選んだメニューに応じて他のシートの値を変更する方法をご紹介しました。別のシートが絡むと複雑になりますが、シート名を指定することによって連動できるイメージを持っておくと良いかもしれません。最後までお読みいただきありがとうございました。