関数 その他小技 EXCEL&VBA

エクセルのプルダウンを隣のセルと連動させる方法

エクセルで隣り合った2つの プルダウン連動させる方法 をピックアップします。

1つめの プルダウンで値を選択すると、その値に連動して 隣のセルプルダウンの内容が変化 します。
トップ画像でいうと、山田太郎さんの「大項目」のプルダウンリストで「AV・情報機器」を選択すると、隣のセル「小項目」には AV・情報機器のジャンルに属するアイテムがリストに表示されます。
「大項目」で「パソコン」を選択場合は、隣のセルの プルダウンが連動してパソコンジャンル属するアイテムが表示されます。

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



隣のセルのプルダウンと連動させる

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

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

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

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

Step2: 表のセル範囲に名前をつける

つぎに、表のセル範囲に名前をつけます。
今回のセルA1からD1のセル範囲には「カテゴリ」という名前を付けます。


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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

▲セルB3を セルB7までコピーする

つぎに、隣のセル(C3)の設定をします。
準備として、セルB3の値を「AV・情報機器」にしておいてください。

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

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


※INDIRECT関数については後述

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


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

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

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


▲隣のセルのプルダウンが連動しているのが確認できた

INDIRECT関数

INDIRECT関数とは

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

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

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

のように表されます。

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

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

関連記事・広告






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