-
Home »
-
エクセル2010基本講座:目次 »
-
入力規則 »
-
連動するリストを作成する(入力規則)
2022/4/5
- このページでは連動するドロップダウンリストを作成します。
いろいろな方法がありますが、ここでは、入力規則でドロップダウンリストの作成が基本です。
リストを連動させるのにINDIRECT関数を使って名前を定義した範囲を利用します。
定義した範囲を自動で伸ばしたり縮めたりするのにテーブルの機能を利用します。
- ドロップダウンリストで種類を選択して、種類に応じたものを2つ目のドロップダウンリストから選択できるようにします。
- 画像はExcel for Microsoft 365のものです。
- リストとするデータをSheet2へ入力することにします。
- 下表をコピーして利用してください。
|
B |
C |
D |
2 |
野菜 |
肉 |
果物 |
3 |
大根 |
豚肉 |
りんご |
4 |
人参 |
牛肉 |
みかん |
5 |
レタス |
鶏肉 |
バナナ |
6 |
|
羊肉 |
イチゴ |
7 |
|
|
スイカ |
- 名前「種類」を作成します。
- セル範囲B2:D2セルを選択し、名前ボックスに「種類」と入力します。
- 「野菜」「肉」「果物」のリストに名前を定義します。
セル範囲B2:D7 を選択し、[数式]タブの[定義された名前]グループの[選択範囲から作成]を実行します。
- 『上端行』にチェックを付けて、[OK]ボタンをクリックします。
- B3:B7に「野菜」、C3:C7に「肉」、D3:D7に「果物」と名前を定義できました。
[数式]タブの[名前の管理]をクリックすると、名前が定義されたセル範囲を確認することができます。
- 連動するドロップダウンリストをSheet1に作成します。
B2セルに 種類、C2セルに品名と入力しました。
- B3セルを選択して、[データ]タブの[データツール]グループの[データの入力規則]を実行します。
- [設定]タブの「入力値の種類」で「リスト」を選択します。
元の値 ボックスをクリックし、「=種類」 と入力します。
- C3セルを選択し、[データ]タブの[データツール]グループの[データの入力規則]を実行します。
ここでは、B3セルで選択された種類に応じて表示されるリストを変える必要があります。
そのために、B3セルの値を参照するために INDIRECT関数を利用します。
- [設定]タブの「入力値の種類」で「リスト」を選択します。
元の値の欄をクリックし、「=INDIRECT(B3)」 と入力します。
- なお、B2セルが空白の状態ですと、『元の値はエラーと判断されます。続けますか?』
とメッセージがでますが、[はい]をクリックして進みます。
- B3セルの値に応じて、C3セルのリストが連動して切り替わります。
C3セルのドロップダウンリストに空白行が含まれますが、次の項のテーブルの定義でこの空白が表示されないように対処します。
- B3セルで肉を選択すると、肉のリストが表示されます。
- B3セルで野菜を選択すると、野菜のリストが表示されます。
- B3セルで果物を選択すると、果物のリストが表示されます。
- これらのデータの増減に応じて、リストの伸び縮みするようにしたいと思います。
ポイントは名前を定義したセル範囲をテーブルに変換します。
- ここから「野菜」「肉」「果物」と名前を定義したセル範囲をそれぞれテーブルに変更します。
「野菜」と名前を定義したセル範囲でタイトル行を含めたSheet2のB2:B7セルを選択します。
- [ホーム]タブのスタイル グループにある[テーブルとして書式設定]→[青,テーブルスタイル(淡色)9]をクリックしました。
- テーブルの作成が表示されます。
「先頭行をテーブルの見出しとして使用する」にチェックを入れます。
[OK]ボタンをクリックします。
- B2:B7がテーブルに変換されました。
- B6:B7セルの空白行がテーブルに含まれていますので、テーブルの範囲を修正します。
テーブルの右下に表示されるセル範囲のボタンをポイントしてマウスポインタを両矢印に変えて、B5セルまでドラッグしてテーブル範囲を縮めます。ポイントはここです。
- この操作で、名前の範囲とテーブルの範囲とを連動して変更することができます。
↓
- 名前「肉」のデータ範囲を選択します。
- [ホーム]タブの[テーブルとして書式設定]からテーブルに変換します。
下図のようにテーブルに変換されました。
↓
テーブルの範囲をデータ量に合わせて調整します。
- 名前「果物」のセル範囲も、[ホーム]タブの[テーブルとして書式設定]からテーブルに変換します。
- Sheet1のB2セルで野菜を選択すると、C3セルのドロップダウンリストから空白行がなくなりました。
- Sheet2のB6:B8セルに「白菜」「ブロッコリー」「ホウレンソウ」を追加します。
すると、テーブルは自動でセル範囲が広がります。
- Sheet1のC3セルのドロップダウンリストに「白菜」「ブロッコリー」「ホウレンソウ」が追加されているのが確認できました。
- 名前の定義されている範囲とテーブルの範囲を確認するには、[数式]タブの[名前の管理]をクリックすると、名前が定義されたセル範囲を確認することができます。
- 関連事項
- 上記の方法でセルに値を入力するのですが、種類で「肉」と品名で「豚肉」を選択した状態が下図です。
- ここで、B3セルで「果物」を選択します。
すると、「果物」と「豚肉」といった組み合わせになってしまいます。
このような組み合わせは入力できないようにしたいのですが、VBAを使わないとできません。
ここでは入力値が適当でないとの警告を条件付き書式で表現することにします。
組み合わせが異なるとき条件付き書式で警告する
- B3セルを選択します。
[ホーム]タブの[条件付き書式]→[新しいルール]を選択します。
- 「数式を使用して、書式設定するセルを決定」を選択します。
ルールに =COUNTIF(INDIRECT(A2),B2)=0 と入力します。
[書式]ボタンをクリックして、セルの塗りつぶしの色を設定しました。
- C3セルが「豚肉」の時、B3セルで「果物」や「野菜」を選択したら、B2セルの色が変化して、入力値がおかしいことに気付き易いようになりました。
- B3セルを「肉」に変更すると、B2セルの塗りつぶしは解除されます。
Home|エクセル2010基本講座:目次|入力規則|連動するリストを作成する(入力規則)