Excelで検索可能なドロップダウンリストを作成する2つの方法【数式・VBA】
この記事では、Excelで検索可能なドロップダウンリストを作成する方法を詳しく解説します。数式を使う方法とVBA(マクロ)を使う方法の2通りがあり、それぞれ手順を追って説明します。まずは下の画像で完成イメージをご確認ください。

練習用のワークブックは、下のダウンロードボタンから取得できます。
Excelで検索可能なドロップダウンリストを作る2つの方法
ここでは、「States」というワークシートに以下のようなデータセットが入力されていると想定します。このデータには、アメリカ合衆国の最初の13州に関する情報が含まれています。

次に、「Dropdown」というワークシートのセルB4に、検索可能なドロップダウンリストを作成していきます。

以下の各方法で紹介する手順に沿って進めていきましょう。
方法1:数式を使って検索可能なドロップダウンリストを作成する
まずは、Excelの数式のみを使って検索可能なドロップダウンリストを作成する方法です。以下の手順に従って操作してください。
📌 手順
- 最初に、「States」シートのセルE5に次の数式を入力します。
=FILTER(B5:B17,ISNUMBER(SEARCH(Dropdown!B4,B5:B17)),"Not Found")- SEARCH関数:指定した値を範囲内から検索します。
- ISNUMBER関数:SEARCH関数の結果が数値(=一致あり)ならTRUEを、そうでなければFALSEを返します。
- FILTER関数:指定した条件に基づいてデータを抽出します。

※FILTER関数はMicrosoft 365およびExcel 2021以降で利用できます。古いバージョンをお使いの場合は、後述のVBAを使う方法をお試しください。
- 続いて、「Dropdown」ワークシートのセルB4を選択し、データ >> データの入力規則を選びます。

- データの入力規則ダイアログで「設定」タブを開き、「入力値の種類」フィールドのドロップダウン矢印から「リスト」を選択します。
- 「元の値」フィールドに次の数式を入力します。
=States!$E$5#- その後、「エラーメッセージ」タブへ移動します。

- 「無効なデータが入力されたらエラーメッセージを表示する」のチェックを外し、「OK」ボタンをクリックします。

- これで検索可能なドロップダウンリストの完成です。セルB4に任意の文字を入力し、セル右下に表示されるドロップダウン矢印を選択すると、下の画像のように一致する検索結果がすべて表示されます。

あわせて読みたい:
数式を使ったドロップダウンリストの作り方(4つの方法)
関連記事:
- フィルター済みドロップダウンリストをコピーする方法(5つの方法)
- テーブルからドロップダウンリストを作成する(5つの例)
- 範囲からリストを作成する方法(3つの方法)
- ドロップダウンリストを自動更新する(3つの方法)
- 複数選択可能なリストボックスの作り方
方法2:Excel VBAを使って検索可能なドロップダウンリストを作成する
次に、ドロップダウン矢印をクリックしなくても、Google検索のように入力と同時に候補が表示される形を実現したい場合の手順です。以下の手順に従ってください。
📌 手順
- まず、前の方法で「データ >> データの入力規則」より前に行った手順まで実行します。
- 次に、「States」ワークシートでセルE5を選択し、数式 >> ネームマネージャーを選択します。

- ネームマネージャーウィンドウで「新規」をクリックして、新しい名前を定義します。

- 「新しい名前」ウィンドウで、名前を「Dropdown_List」に変更します。
- 「参照範囲」フィールドに次の数式を入力して「OK」をクリックします。この数式ではINDEX関数とCOUNTIF関数を使用しています。
=States!$E$5:$E$5:INDEX(States!$E$5:$E$17,COUNTIF(States!$E$5:$E$17,"?*"))
- 「Dropdown」ワークシートに移動し、「開発」タブから挿入 >> コンボボックスを選択します。

- マウスをドラッグして、下図のようにコンボボックスのサイズを適切に調整します。

- すると、次のように新しいコンボボックスが作成されます。

- コンボボックス上で右クリックし、「プロパティ」を選択します。

- プロパティウィンドウで「アルファベット」タブを選択し、以下の設定を変更します:AutoWordSelect >> False、LinkedCell >> B4、MatchEntry >> 2 – fmMatchEntryNone。

- 次のVBAコードをコピーします。
Private Sub ComboBox1_Change()
ComboBox1.ListFillRange = "Dropdown_List"
Me.ComboBox1.DropDown
End Sub
- その後、コンボボックスをダブルクリックします。「Microsoft Visual Basic for Applications」ウィンドウの新しいモジュールが開くので、コピーしたコードを空のモジュールに貼り付けます。最後にF5キーを押してコードを実行してください。

- これで、検索可能なドロップダウンがGoogle検索のように動作するようになります。

あわせて読みたい:
VBAでドロップダウンリストに重複しない値を表示する完全ガイド
注意点
- コンボボックスに文字を入力できるようにするには、「開発」タブのデザインモードを解除しておく必要があります。
- 数式内の絶対参照($マーク)が正しく入力されているか必ず確認しましょう。
- 配列数式が正しく動作しない場合は、Ctrl + Shift + Enterで入力してみてください。
まとめ
今回は、Excelで検索可能なドロップダウンリストを作成する2つの方法を紹介しました。数式を使えば手軽に実装でき、VBAを使えばより高度な検索体験も実現できます。ご質問やご意見があれば、下のコメント欄でお気軽にお知らせください。実際に試された結果もぜひ教えてください。当ブログ「ExcelDemy」では、Excelに関する役立つ情報を多数公開しています。今後ともお付き合いいただき、楽しく学んでいきましょう。
関連記事
- ドロップダウンリストを使ってフォームを作成する方法
- ドロップダウンリストの選択に応じて列を表示・非表示にする方法
- ドロップダウンで選択した項目に応じて別シートからデータを取得する方法
- 使用済みの項目をドロップダウンリストから削除する方法(2つの方法)
- ドロップダウンリストから重複を削除する方法(4つの方法)
-
Excelでドロップダウンリストから別シートへ移動する方法|HYPERLINK関数とVBAの2つの手法
この記事では、Excelでドロップダウンリスト型のハイパーリンクを作成し、ワンクリックで別のシートへ移動する方法を解説します。HYPERLINK関数を活用する方法とVBAコードを使う方法の2通りを、実際の例をもとに順を追ってご紹介します。 別シートへのドロップダウンリストハイパーリンクを作成する2つの方法 ここでは、2020年1月〜3月の売上明細データが、「January」「February」「March」という月名を付けた3枚のワークシートに分けて保存されているデータセットを例にします。この状態から、シート名の一覧を含むドロップダウンリストを作成し、選択したシートへ移動できるようにして
-
Excelでドロップダウンリスト付きのデータ入力フォームを作成する2つの方法
Microsoft Excelでは、データ入力フォームや計算フォームなど、さまざまな種類のフォームを作成できます。こうしたフォームを活用すれば、データ入力が格段に楽になり、作業時間の大幅な節約にもつながります。また、Excelには「ドロップダウンリスト」という便利な機能もあります。限られた値を何度も手入力するのは面倒ですが、ドロップダウンリストを使えば、リストから選ぶだけで簡単に値を入力できます。この記事では、Excelでドロップダウンリスト付きのデータ入力フォームを作成する方法を、具体的な操作画面とともにわかりやすく解説します。 Excelでドロップダウンリスト付きデータ入力フォームを