関数 その他小技 EXCEL&VBA

エクセルのプルダウンを連動させる方法|2つめのリスト内容が変化する!

エクセルで2つの プルダウン連動させる方法 について解説します。

エクセルの ひとつめの プルダウンで選択された値に連動して、二つ目のプルダウンの内容が変化 します。

トップ画像(左)でいうと、リスト2番目 鈴木一郎さんの「大項目」のプルダウンリストで選択された値が「パソコン」の場合は、隣の「小項目」のリストにはパソコンのジャンルに属するアイテムがリスト表示されます。
「大項目」が「生活家電」の場合(画像右側)は、それに連動して「小項目」のリストの内容は生活家電のアイテムが表示されます。

では、手順を見ていきましょう。



エクセルのプルダウンを連動させる

プルダウンリストとは

ドロップダウンリスト(メニュー)と呼ばれたりもしますが、プルダウンリストとは Excelのセルに入力する値を限定させたいときに、あらかじめ設定されたメニューの中からユーザーに値を選択させる機能です。


▲これがプルダウン

このプルダウンを使うことで、ユーザーの 入力ミス や 表記揺れ を防ぎ、集計しやすいキレイなデータベースが出来上がります。

プルダウンを連動させる手順

Step1: リストの元データを作る

まず、プルダウンリストのメニュー内容の「元となるリスト」を下図のように作ります。

各列のヘッダー部分(1行目:ピンク部分)のセルA1からセルD1がひとつ目のリストに表示される選択肢になります。
※リストの配列は縦並びでも横並びでも問題ありません

ひとつ目のリストで選ばれた セルA1からセルD1の値のいずれかに連動して、各列の2行目から5行目までの値が2つ目のリストのメニューとして表示されます。

Pointセルやセル範囲に名前を付ける「名前の管理」機能

プルダウンリストを作成するときに便利なのが「名前の管理」機能です。


あらかじめセル範囲に『任意の名前』をつけて管理する機能です。

名前の付け方は簡単で、名前を付けたいセル範囲を選択し、数式バーの左にある 名前ボックス(通常はセル位置が表示)に任意の名前を入力するだけです。
さしずめ、今回のセルA1からD1のセル範囲には「カテゴリ」という名前を付けます。


▲セル範囲を選んで左上の『名前ボックス』に名前を入力するだけ

そして、各カテゴリに属する列の項目には1行目のカテゴリの名称を与えます。

手順としては、対象のセル範囲(例:セルA1~A5)を選択する

「名前の管理」>「選択範囲から作成」>「上端行」を選んでOK

これでセルA1からA5のセル範囲に「AV・情報家電」という名前が付きました。

これを、A列からD列まで繰り返し、それぞれに1行目の名前を与えて準備完了です。



Step2: 入力用シートで プルダウンを連動させる

つぎに、Step1で作成したメニュー項目をプルダウンとして選択できるシートを作ります。
このシートが本来の主役です。


▲こんなサンプルを作りました

「大項目」の列には、プルダウンリストにさきほどの表の「カテゴリ」が、「小項目」の列には選ばれたカテゴリに連動して各カテゴリに属する製品が表示されるようにします。

セルB3 を選択した状態で、「データ」>「データの入力規則」とすすみます。

つぎに「入力値の種類(A)」に「リスト」を、下の「元の値(S)」には「=カテゴリ」と入力しOKをクリックします。

すると、セルB3 にはプルダウンリストが表示され、そこには Step1 で登録した表の「カテゴリ」の一覧が表示されているはずです。


▲カテゴリ がリストに表示された

この セルB3を セルB7までコピー して B列は完成です。

つぎに、右隣の セルC3 を選択した状態で、再び「データ」>「データの入力規則」とすすみます。

「入力値の種類(A)」には先ほどと同じ「リスト」を、下の「元の値(S)」には数式
=INDIRECT(B3)
と入力しOKをクリックします。


※INDIRECT関数については後述

すると、セルC3 には セルB3 のリストで選択した「AV・情報家電」のカテゴリに属する製品がリストに表示されます。


▲小項目のプルダウンが 大項目の値に連動した!

このセルC3をセルC7までコピーして「入力規則」を反映させて完成です。

試しに、セルB4をつかってリストから「パソコン」を選択します。

すると、セルC4のプルダウンリストには、大項目「パソコン」に属するメニューアイテムが表示されます。

INDIRECT関数

INDIRECT関数とは

最後に、2つ目のプルダウンの設定で「元の値」に入力された INDIRECT関数について触れておきます。

INDIRECT関数とは、指定された文字列への参照を返す関数で;

=INDIRECT(参照文字列 [,参照形式])

のように表されます。

要は参照先が変動する場合に便利な関数というわけです。

INDIRECT関数については、過去記事で別な目的でピックアップしています。
より詳しく INDIRECT関数について知りたい方はこちらの記事も参照してください。

関連記事・広告



併せて読んでおくとさらに便利

エクセル「入力規則」完全マスター
入力規則
エクセルの入力規則をマスターしよう。結果による色分けや入力規則の解除方法、ユーザー設定を使用した数式による条件指定や入力規則をコピーする方法など完全網羅しました。

エクセルで並べて表示できない・並べて比較できないときの対処法
シート操作・並べて表示
エクセルの複数の シートやファイルを横に並べて表示する方法・並べて比較する方法について解説。よく寄せられる『並べて表示できない』『並べて比較できない』といった質問にお答えします。

INDIRECT関数で別シートの同一セルにある値をリスト化・集計する方法
INDIRECT関数・集計
別シートの同一セルに入力された値を参照し、リスト化・集計する方法について解説します。Excelで複数シートの同一セルの値を一覧にまとめるワザがあるのです。

エクセルのシートをコピー・移動する方法と注意点|Excelのキホン
シート操作
エクセルでシートをコピー・移動する方法とエラー対策についてまとめました。Excelでシートのコピーが できない、エラーになるという方は是非ご覧ください。

VLOOKUP の使い方と使えない・エラーでお困りの方へ
VLOOKUP関数
Excelで VLOOKUP の使い方について解説します。VLOOKUPの数式から具体的な使い方まで詳しく説明しています。VLOOKUPが使えない、エラーが出るという方...

EXCELで「文字列の置換・削除」方法をパターン別にまとめた
関数・文字列操作
Excelの特定の文字を削除したり文字列を置換(置き換え)したり、文字列に含まれる余分なスペースや文字を削除したりする方法のまとめです。置換の関数や削除の関数をパターン別に例示し...

EXCELの行や列を折りたたむ「グループ化」をマスターしよう
グループ化
行や列を折りたたむ「グループ化」の機能について解説。たたむ・展開するの切替えはワンタッチで簡単!この グループ化 で見た目もすっきり、そして機能的な作表に挑戦しましょう。

※その他関連記事は、このページの下の方にもあります。




-関数, その他小技, EXCEL&VBA
-, ,