Excel情報513 関数--ドロップダウンリストを2つ使い、リストの選択を効率的にする
【テーマ】
今回は、「データの入力規則」で使えるドロップダウンリストを2つ使い、参照する範囲を自動的に変更する方法をご紹介します。
【方法】
「名前の定義」、「INDIRECT関数」、「データの入力規則」を使用します。
【参考】
セル範囲に自動で複数の名前をつける場合は、「選択範囲から作成」を使うと便利です。
[部署]や[社員名]など、決まった選択肢を入力する時に使うドロップダウンリストは便利ですよね。
しかし、1つのドロップダウンリスト内に選択股が多すぎると、スクロールする必要があり、
かえって面倒になる場合もあるかと思います。
そこで今回は[部署]リストを選択したら、その部署に所属する社員だけ[社員名]リストに表示するような
ドロップダウンリストの設定についてご紹介します。
この方法を使えば入力の効率化やミスの減少につながります。
ドロップダウンリストが[社員名]1つの場合
[部署]と[社員名]の2つのドロップダウンリストを連動させた場合
■設定方法
   例として下図を使います。
   「所属部署社員一覧表」のデータを元に
   「12月度 鍵当番表」の[部署]と[社員名]にドロップダウンリストを作ります。
手順1. ドロップダウンリストの元データに名前をつける
       「所属部署社員一覧表」のそれぞれの項目に対して、名前を定義します。
       @B4セルからG12セルまで選択し(4行目の列見出しを含んで範囲を選択)、
       A「数式」タブからB「選択範囲から作成」をクリックします。
    「上端行」にチェックを入れ、「OK」をクリックします。
    列見出しの名前で、自動でセル範囲に名前が定義されました。
手順2.ドロップダウンリストの設定
           [データの入力規則]からドロップダウンリストを設定します。
   ・[部署]リストの設定
       ドロップダウンリストを設定するセルを選択後(例ではC5セル)、
       [データ]タブから[データの入力規則]を選択し、[リスト]の設定します。
       「元の値」には =部署 と設定し、OKをクリックします。
      [部署]リストの設定ができました。
   ・[社員名]リストの設定
      INDIRECT関数を使い、[部署]と連動させるドロップダウンリストを作成します。
      ドロップダウンリストを設定するセルを選択後(例ではD5セル)、
      「データの入力規則」から「リスト」を指定し、
       「元の値」には =INDIRECT($C5) と設定します。
=INDIRECT($C5)
      INDIRECT関数で、指定したセル番地の文字を参照し、セル範囲として認識するので、
      指定したセル番地に入っている文字が変われば、動的にセル範囲を変更することができます。
       ※INDIRECT関数には、あとで数式をコピーするため、$を指定しています。
       ※INDIRECT関数の詳細は、以下のバックナンバーをご参照ください。
【バックナンバー291】 関数--シートの特定のセルの値をとる
C5、D5セルの設定を下行にコピーして完成です。
ドロップダウンリストで選んだ[部署]と連動し、[社員名]が表示されました。
■ご参考までに
    セル範囲に名前をつける方法は、
    「名前ボックスから作成」や「[新しい名前]ダイアログボックス」からでも可能ですが、
    今回のようにセル範囲に複数の名前を定義する場合は、予めデータを表形式で作成し、
    「選択範囲から作成」機能を使うと1回で設定できるので便利です。
    ただし、名前の範囲は、選択肢の一番多いリストの最終行になりますので、
    リストに空白が出る場合があります。
    作成後、各名前の範囲を修正することをおすすめします。
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます