Microsoft Excel(およびWordとAccess)のドロップダウンリストを使用すると、特定のフィールドで自分や他のユーザーが選択できる有効な選択肢のリストを作成できます。これは、特定の情報の入力が求められるフィールド、長くて複雑なデータ(スペルミスが多い)を持つフィールド、あるいは回答をコントロールしたいフィールドで特に便利です。
従属ドロップダウンリスト(INDIRECT関数と組み合わせる)を作成することも、もう1つの利点です。これにより、メインメニューのドロップダウンリストボックスから製品カテゴリ(飲料など)を選択し、サブメニュー(従属)ドロップダウンリストボックス(アップルジュース、コーヒーなど)から関連するすべての製品を表示できます。これは、すべての製品を管理しやすいカテゴリに分割するため、発注や在庫管理に非常に役立ちます。多くの卸売企業や小売企業は、この方法で製品ラインを管理しています。実際、病院や保険会社、銀行など、多くの企業がドロップダウンリスト、チェックボックス、コンボリスト、ラジオボタンなどを使用して、入力ミスやユーザーエラーを最小限に抑えています。
サンプルのドロップダウン リストを作成しましたので、手順を練習したり、独自のデータを自由に使用したりできます。
ダウンロード
このワークブックのデータを使用して、Excel のドロップダウン リストを練習します。
スプレッドシートデータベースのサイズが大きい場合や、多数のフィールドが含まれている場合は、リストボックスの項目を同じブック内の別のスプレッドシートのテーブルに配置することをお勧めします。ただし、リストが比較的短い場合は、「データの入力規則」ダイアログウィンドウの「ソース」フィールドに、リストの項目をカンマで区切って入力することもできます。
1. 新しいワークブックを開き、2 番目のスプレッドシート タブを追加します (タブ バーの画面下部にある「+」記号をクリックします)。
2. スプレッドシート 1 の名前を「wks」(ワークシート)に変更し、スプレッドシート 2 の名前を「lists」に変更します。
3. A列のA1からA10に10人の医師の名前(またはその他の該当する項目)を入力します。
4. リストを好みに合わせて並べ替えます。姓で並べ替える場合は、元のリストに姓、名、ミドルネームの頭文字の順に入力します。
5. 範囲(A1:A10)をハイライト表示するか、リスト内の任意のセルにカーソルを合わせてCtrl+Tキーを押すと、この項目のグループがテーブルに変換されます。Excelではテーブル1、2、3などと表示されますが、テーブルが1つしかない場合は問題ありません。「テーブルに見出しを付ける」チェックボックスをオンにしてください。
注:データがテーブル内にある場合、リスト (および同じテーブルを使用する他のすべてのドロップダウン リスト) に項目を追加または削除することができ、それらはすべて自動的に更新されます。
JD・サルティン / IDGワールドワイドアイテムのリストを入力し、リストをテーブルに変換します。
6. スプレッドシート1(名前をwksに変更)に移動します。次の図に示すようなデータ(手術の種類、日付、時刻、執刀医など)を入力するか、独自のデータを作成します。
7. ドロップダウンリストを表示するセルまたはセルグループを選択します。今回はD2(またはD2:D11)を選択します(列全体を選択する必要はありません)。
8. [データ] タブから、[データの検証] > [データの検証]を選択します。
9. 「データ検証」ダイアログウィンドウで、「設定」タブを選択します。「検証条件」パネルの「許可」フィールドで、ドロップダウンリストボックスから「リスト」オプションを選択します。
JD・サルティン / IDGワールドワイド[設定]タブのリスト ボックスから[リスト]を選択します。
10. Tab キーを押して「ソース」フィールドに移動し、このボックス内をクリックします。
11. カーソルをこのダイアログ ウィンドウの外に移動し、画面下部のワークブック タブからリストスプレッドシートを選択します。
12. 医師の範囲(A2からA11)を選択します。Excelが自動的にこの範囲を「ソースフィールド」ボックスに追加します(=lists!$A$2:$A$11)。
13. 次に、「入力メッセージ」タブをクリックし、ドロップダウン リストのタイトルと入力メッセージを入力します。
14. 次に、「エラーアラート」タブをクリックし、ドロップダウン リストのタイトルとエラー メッセージを入力します。
15. [OK]をクリックすると、ドロップダウン リスト ボックスが完成します。
JD・サルティン / IDGワールドワイドドロップダウン リスト ボックスのソース範囲、入力メッセージ、およびエラー アラートを入力します。
16. wksスプレッドシートに戻り、セルD2にカーソルを置きます。ドロップダウンリストボックスの矢印が表示され、選択した列の各セルの右側にカスタム入力メッセージが表示されます。下矢印をクリックし、A列の対応する行にある手術の種類を専門とする医師をリストから選択します。例えば、サイモン・ウォルターズ医師の専門分野は股関節手術です。
17. 無効な名前、つまり「Acceptable Surgeon(受け入れ可能な外科医)」リストにない名前を入力しようとした場合、Enterキーを押すと、指定したカスタムエラーメッセージが表示されます。このダイアログを終了するには、 「キャンセル」をクリックしてください。
JD・サルティン / IDGワールドワイドリストから医師を選択するか、エラー警告に対して無効なエントリを入力してください。
依存ドロップダウンリストを作成する
従属ドロップダウンリストは、Officeアプリケーションのサブメニューのようなものです。メインメニュー(またはドロップダウンリスト)には様々なオプションが表示され、それぞれのサブメニューの下にはメインメニューに関連する詳細なオプションが表示されます。サンプルワークシートでは、ドロップダウンリストに手術の種類に合った外科医の選択肢が表示されています。
次の演習では、大都市から約80キロ離れた、小さな田舎の病院を経営していると想像してください。その大都市には、スタッフが揃った3つの大規模病院があります。あなたの仕事は、これらの3つの大規模病院のいずれかから外科医を招き、あなたの病院で患者を診察してもらうことです。「メイン」ドロップダウンリストには、各外科医が勤務する病院(所在地別)が表示されます。サブメニュードロップダウンリストには、イーストサイド、ウェストサイド、ミッドタウンの各病院で働く外科医の名前が表示されます。
A. リストを作成する
1. まず、別のスプレッドシートを追加し、lists2 という名前を付けます。
2.スプレッドシート「lists2」のA列に「Hospital Locations(病院の所在地)」と入力します。「Hospital Locations(病院の所在地)」のセルA2、A3、A4にそれぞれ「EastSide」、 「WestSide」、 「Midtown」 と入力します(スペースを入れず、1つの単語で入力します)。
3. カーソルを「Hospital Locations」(病院所在地)のタイトルの下の最初のセル(A2)に移動します。「ホーム」 > 「表として書式設定」をクリックし、サブメニューから表スタイルを選択して「OK」をクリックします。
4. このリスト(A2:A4)から病院の場所を選択します。「名前」ボックス(列Aの上)にテーブル名(「Locations 」)を入力するか、Ctrl+Tキーを押してこれらの項目をテーブルに変換します。変換されたテーブルには、Excelによって「Table 1」、「Table 2」、「Table 3」などの名前が付けられます。最後に、 「My Table Has Headers」チェックボックスをオンにします。
5. テーブルの名前を変更するには、「数式」 > 「名前の管理」を選択します。カーソルをテーブル1(2、3、4など)まで移動し、「編集」ボタンをクリックします。
6. 「名前の編集」ダイアログボックスで、新しい名前(場所)を入力します。
注: Excelでは、スペースやその他の特殊文字は使用できません。名前は文字またはアンダースコアで始まる必要があり、Excelの組み込み名やブック内の他のオブジェクトと重複することはできません(たとえば、1つのブック内に同じ名前の範囲を2つ作成することはできません。たとえ範囲が別々のスプレッドシートにあっても)。
JD・サルティン / IDGワールドワイドExcel の名前マネージャーを使用してテーブルの名前を変更します。
7. 次に、病院の所在地ごとに別々のテーブルを作成します。lists2 スプレッドシートの列 B に、East Side、C: West Side、D: Midtownというタイトルを入力します(これらの列ラベルは、スペースを除いた範囲名になります)。
8. これらの 3 つの列 (B、C、D) のそれぞれに医師の名前を入力します。
9. 各リストを名前付きテーブルとしてフォーマットします (上記の手順 3 を繰り返します)。
10. 各列の範囲(B1:B8、C1:C7、D1:D9)を個別に選択します。Ctrl +T キーを押して、これらの項目のグループをテーブルに変換します。Excel によってテーブル 2、3、4 などの名前が付けられます。次に、「テーブルに見出しを付ける」チェックボックスをオンにします。上記の手順 5 と 6 を繰り返して、テーブルの名前を変更します。範囲名にはスペースを入れないでください。
JD・サルティン / IDGワールドワイドリスト用のテーブルを作成します。
注:複数のテーブルがある場合は、各列に指定したヘッダーに基づいて名前を付けます。
B. ドロップダウンを作成する
1. まず、wksスプレッドシートに戻り、列Dの「外科医」というタイトルのドロップダウンリストを削除します。列D1に「場所」という新しいヘッダーを作成し、列E1に「外科医」という名前を付けます。
2. セル範囲 D1:E11 を選択し、[ホーム] > [テーブルとして書式設定]を選択してスタイルを選択し、ヘッダー ボックスをオンにして、[OK]をクリックします。
3. 次に、メイン メニューのドロップダウン リストのセル (D2:D11) を選択します。
4. [データ] タブから、[データの検証] > [データの検証]を選択します。
5. 「データ検証」ダイアログウィンドウで、「設定」タブを選択します。「検証条件」パネルの「許可」フィールドで、ドロップダウンリストボックスから「リスト」オプションを選択します。
6. [ソース]ボックスで、list2スプレッドシートをクリックし、ヘッダー (A2:A4) を除いた Hospital Location リストを強調表示して、[OK]をクリックします。
JD・サルティン / IDGワールドワイドメイン メニューのドロップダウン リストを作成します。
7. カーソルをセル E2 に移動します。
8. 上記の手順 8 と 9 を繰り返します。
9. 今回は、[ソース]ボックスに次の数式を入力します: =INDIRECT($D$2) (ただし、これは現在のセルのみに適用されます)。次に、[OK]をクリックします。
注:ソース エラー メッセージが表示された場合は、[はい]をクリックしてください。ドロップダウン リストのデータが入力されるとエラーは解消されます。
10. 列にデータを入力するには(当然のことですが)、次の数式を入力します:=INDIRECT($D2)(行番号の「$」記号は不要です)そして、セルD2をD3からD11までコピーします。これで範囲全体がアクティブになります。
JD・サルティン / IDGワールドワイドINDIRECT 関数を相対式として入力し、コピーします。
11. 入力メッセージまたはエラーアラートを追加する場合は、「シンプルなドロップダウン リストを作成する方法」セクションの手順 13 ~ 14 を繰り返します。
C. 作業をテストする
では、作業内容をテストしてみましょう。D列(場所)のドロップダウン矢印を(一度に1つずつ)クリックしてください。
1. リストから病院を選択すると、アクティブ セルに表示されます。
2. カーソルを E 列 (外科医) に移動し、D 列で指定した場所の医師のリストから医師を選択します。
JD・サルティン / IDGワールドワイドドロップダウン リストは期待どおりに機能します。
D. 2単語項目の回避策
メインメニューのドロップダウンリストに2つ以上の単語(例:Location)を使用し、スペースを入れずに単語をつなげたくない場合(例:EastSideではなくEast Side)は、「データの入力規則」ダイアログウィンドウの従属ドロップダウンリスト(Surgeon)のソースボックスに次の数式を入力します:=INDIRECT(SUBSTITUTE(D2,” “,””))。ここで、D2はセルアドレス、「” ”」は引用符とスペース、引用符とスペースの組み合わせ、「”」は引用符と引用符の組み合わせでスペースなしであることを意味します。つまり、スペースを含むセルD2を、スペースを除いたセルD2に置き換えます。
今のところは以上です。さらにサポートが必要な場合は、こちらのスプレッドシートをダウンロードしてください。