跳至主要内容

Excel 中可搜索下拉列表的终极指南

Author: Siluvia Last Modified: 2025-07-31

在 Excel 中创建下拉列表可以简化数据输入并减少错误。但是,对于较大的数据集,滚动浏览冗长的列表会变得很麻烦。如果能够直接键入并快速找到所需项目,不是更方便吗?“可搜索下拉列表”就提供了这种便利。本指南将引导您完成在 Excel 中设置此类列表的四种方法。

searchable drop-down list



视频:创建可搜索下拉列表

 


Excel 365 中的可搜索下拉列表

Excel 365 在其数据验证下拉列表中引入了一个备受期待的功能:能够在列表内进行搜索。通过这种可搜索功能,用户可以更快地定位和选择项目,从而提高效率。按照常规方式插入下拉列表后,只需单击带有下拉列表的单元格并开始输入。列表将立即过滤以匹配输入的文本。

在此示例中,我在单元格中输入 San,下拉列表将筛选出以搜索词 San 开头的城市,例如旧金山圣地亚哥。然后,您可以使用鼠标选择结果,或者使用箭头键并按 Enter 键确认。

Searchable drop-down list in Excel 365

注意:
  • 搜索从下拉列表中每个单词的首字母开始。如果您输入的字符与任何单词的起始字符不匹配,列表将不会显示匹配项。
  • 此功能仅在最新版本的 Excel 365 中可用。
  • 如果您的 Excel 版本不支持此功能,我们在此推荐 可搜索下拉列表 功能来自 Kutools for Excel。该功能没有 Excel 版本限制,启用后,只需键入相关文本即可轻松在下拉列表中搜索到所需的项目。 查看详细步骤

创建可搜索下拉列表(适用于 Excel 2019 及更高版本)

如果您使用的是 Excel 2019 或更高版本,本节中的方法也可以用于使 Excel 中的下拉列表具备搜索功能。

假设您已经使用 Sheet1 中 A2:A8 范围内的数据(左图)在 Sheet2 的 A2 单元格中创建了下拉列表(右图),请按照以下步骤使列表可搜索。

 sample data

步骤 1. 创建一个列出搜索项目的辅助列

这里我们需要一个辅助列来列出与源数据匹配的项目。在此示例中,我将在 Sheet1D 列中创建辅助列。

  1. 选择 D 列中的第一个单元格 D1,并输入列标题,例如本例中的“搜索结果”。
  2. 在单元格 D2 中输入以下公式并按 Enter.
    =FILTER(A2:A8,ISNUMBER(SEARCH(Sheet2!A2,A2:A8)),"未找到")
     Create a helper column that lists the search items
注意:
  • 在此公式中,A2:A8 是源数据范围。Sheet2!A2 是下拉列表的位置,这意味着下拉列表位于 Sheet2 的 A2 单元格中。请根据您自己的数据更改它们。
  • 如果没有从 Sheet2 的 A2 下拉列表中选择任何项目,公式将显示源数据中的所有项目,如上图所示。相反,如果选择了某个项目,D2 将显示该项目作为公式的计算结果。
步骤 2:重新配置下拉列表
  1. 选择下拉列表单元格(在此示例中,我选择 Sheet2 的 A2 单元格),然后转到选择 数据 > 数据验证 > 数据验证.
     click Data > Data Validation > Data Validation
  2. 数据验证 对话框中,您需要按如下方式配置。
    1. 设置 选项卡中,点击 select button 按钮在 来源 框中。
       click select button
    2. 数据验证 对话框将重定向到 Sheet1,选择包含步骤 1 公式的单元格(例如,D2),添加一个 # 符号,并点击 关闭 按钮。
      select the cell with the formula, add a # symbol
    3. 转到 错误警告 选项卡,取消选中 在输入无效数据后显示错误警告 复选框,最后点击 确定 按钮以保存更改。
       uncheck the Show error alert after invalid data is entered checkbox
结果

现在,Sheet2 中 A2 单元格的下拉列表已具备搜索功能。在单元格中输入文本,点击下拉箭头展开下拉列表,您将看到列表即时过滤以匹配输入的文本。

The drop-down list is now searchable

注意:
  • 此方法仅适用于 Excel 2019 及更高版本。
  • 此方法一次只能作用于一个下拉列表单元格。要使 Sheet2 中 A3 至 A8 单元格的下拉列表具备搜索功能,必须对每个单元格重复上述步骤。
  • 当您在下拉列表单元格中输入文本时,下拉列表不会自动展开,您需要手动点击下拉箭头将其展开。

轻松创建可搜索下拉列表(适用于所有 Excel 版本)

鉴于上述方法的各种限制,这里为您推荐一个非常有效的工具——Kutools for Excel 的“使下拉列表可搜索、自动弹出”功能。该功能适用于所有版本的 Excel,并允许您通过简单的设置轻松在下拉列表中搜索所需的项目。

下载并安装 Kutools for Excel 后,选择 Kutools > 下拉列表 > 使下拉列表可搜索、自动弹出 以启用此功能。在“使下拉列表可搜索”对话框中,您需要执行以下操作:

  1. 选择包含需要设置为可搜索下拉列表的范围。
  2. 点击 确定 以完成设置。
结果

当您点击指定范围内的下拉列表单元格时,右侧会出现一个列表框。输入文本以即时过滤列表,然后选择项目或使用箭头键并按 Enter 键将其添加到单元格中。

注意:
  • 此功能支持从单词内的任意位置进行搜索。这意味着即使您输入的字符位于单词的中间或末尾,仍然会找到并显示匹配项,提供更全面且用户友好的搜索体验。
  • 要了解更多关于此功能的信息,请访问此页面
  • 要应用此功能,请先下载并安装 Kutools for Excel
Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

使用组合框和 VBA 创建可搜索下拉列表(较复杂)

如果您只是想创建一个可搜索的下拉列表而无需指定特定类型的下拉列表。本节提供了一种替代方法:使用带有 VBA 代码的组合框来实现任务。

假设您在 A 列中有一系列国家名称,如下面的截图所示,现在您想将它们用作可搜索下拉列表的源数据,您可以按照以下步骤操作。

sample data

您需要在工作表中插入一个组合框,而不是数据验证下拉列表。

  1. 如果 开发工具 选项卡未显示在功能区上,您可以按如下方式启用 开发工具 选项卡。
    1. 在 Excel 2010 或更高版本中,点击 文件 > 选项。在 Excel 选项 对话框中,点击 自定义功能区 在左侧窗格中。转到“自定义功能区”列表框,勾选 开发工具 框,然后点击 确定 按钮。见截图:
      steps to enable the Developer tab
    2. 在 Excel 2007 中,点击 Office 按钮 > Excel 选项。在 Excel 选项 对话框中,点击 常用 在左侧窗格中,勾选 在功能区中显示开发工具选项卡 框,最后点击 确定 按钮。
      steps to enable the Developer tab in Excel 2007
  2. 显示 开发工具 选项卡后,点击 开发工具 > 插入 > 组合框.
     click Developer > Insert > Combo box
  3. 在工作表中绘制一个组合框,右键单击它,然后从右键菜单中选择 属性
    Draw a Combo box, right click it and then select Properties
  4. 属性 对话框中,您需要执行以下操作:
    1. AutoWordSelect 字段中选择 False
    2. LinkedCell 字段中指定一个单元格。在此示例中,我们输入 A12;
    3. MatchEntry 字段中选择 2-fmMatchEntryNone
    4. ListFillRange 字段中输入 DropDownList
    5. 关闭 属性 对话框。见截图:
      set options in the Properties dialog box
  5. 现在通过点击 开发工具 > 设计模式 关闭设计模式。
  6. 选择一个空白单元格,例如 C2,输入以下公式并按 Enter。然后拖动其自动填充柄至 C9 单元格以自动填充相同公式。见截图:
    =--ISNUMBER(IFERROR(SEARCH($A$12,A2,1),""))
    apply a formula
    注意:
    1. $A$12 是您在第 4 步中指定为 LinkedCell 的单元格;
    2. 完成上述步骤后,您现在可以测试:在组合框中输入字母 C,然后您可以看到引用包含字符 C 的单元格的公式单元格被填充为数字 1。
  7. 选择单元格 D2,输入以下公式并按 Enter。然后拖动其自动填充柄至 D9 单元格。
    =IF(C2=1,COUNTIF($C$2:C2,1),"")
    apply another formula
  8. 选择单元格 E2,输入以下公式并按 Enter。然后拖动其自动填充柄至 E9 以应用相同的公式。
    =IFERROR(INDEX($A$2:$A$9,MATCH(ROWS($D$2:D2),$D$2:$D$9,0)),"")
    apply the third formula
  9. 现在,您需要创建一个名称范围。请点击 公式 > 定义名称.
    click Formula > Define Name
  10. 新建名称 对话框中,输入 DropDownList 在 名称 框中,在 引用位置 框中输入以下公式,然后点击 确定 按钮。
    =$E$2:INDEX($E$2:$E$9,MAX($D$2:$D$9),1)
    
    specify options in the New Name dialog box
  11. 现在,通过点击 开发工具 > 设计模式 打开设计模式。然后双击组合框以打开 Microsoft Visual Basic for Applications 窗口。
  12. 复制并粘贴以下 VBA 代码到代码编辑器中。
    Copy and paste the VBA code below into the Code editor
    VBA 代码:使下拉列表可搜索
    Private Sub ComboBox1_GotFocus()
    	ComboBox1.ListFillRange = "DropDownList"
    	Me.ComboBox1.DropDown
    End Sub
  13. Alt + Q 键关闭 Microsoft Visual Basic for Applications 窗口。

从现在开始,当在组合框中输入字符时,它将进行模糊搜索并将相关值列在列表中。

drop down list can search

注意:您需要将此工作簿保存为启用宏的工作簿文件,以便将来保留 VBA 代码。

最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于智能执行革新数据分析:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  无需公式四舍五入 ...
超级 VLookup多条件  |  多值  |  跨多表  |  模糊查找...
高级下拉列表简易下拉列表  |  级联下拉列表  |  多选下拉列表...
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  比较列以 选择相同和不同单元格 ...
特色功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿与工作表管理器 | 资源库(自动文本)  |  日期提取  |  合并工作表  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊筛选(筛选粗体/斜体/删除线...) ...
排名前 15 的工具集12 个文本工具添加文本删除特定字符 ...)  |  50+ 种图表 类型甘特图 ...)  |  40+ 实用 公式基于生日计算年龄 ...)  |  19 个插入工具插入二维码从路径插入图片 ...)  |  12 个转换工具小写金额转大写汇率转换 ...)  |  7 个合并和拆分工具高级合并行拆分 Excel 单元格 ...)  |  ... 更多功能
使用您偏好的语言来操作 Kutools - 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

Kutools for Excel 拥有超过 300 项功能,确保您所需的一切都仅需一键之遥...


Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读和编辑

  • 一秒内在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的生产力可提升 50%。
  • 为 Office(包括 Excel)带来高效标签页,就像 Chrome、Edge 和 Firefox 一样。