Excel怎么制作下拉搜索框 输入关键词自动匹配选项

小伟小哥_9645

小伟小哥_9645

2026-05-30

748人浏览

原创

Excel动态搜索下拉菜单可通过FILTER函数(M365)、OFFSET+MATCH(兼容旧版)或VBA(全版本交互式)实现:FILTER实时返回匹配项并配合溢出引用$Z$1#;OFFSET+MATCH需排序或辅以数组公式;VBA则通过TextBox与ListBox提供真搜索引擎体验。

excel怎么制作下拉搜索框 输入关键词自动匹配选项

面对Excel中上千条产品名称或员工姓名的下拉菜单,手动滚动查找既耗时又容易点错——输入“华为”却选中“华硕”,输“张伟”翻到第87行才看到,这种低效录入必须被终结。

用FILTER函数一步生成动态搜索下拉(M365专属)

第一步:在空白列(如Z1)输入公式:=FILTER($A$2:$A$1000,ISNUMBER(SEARCH($D$2,$A$2:$A$1000)))。这里$D$2是你准备输入关键词的单元格,$A$2:$A$1000是原始选项源;FILTER会实时返回所有包含D2内容的行,哪怕关键词在字符串中间(如搜“美”能命中“李美丽”)。

第二步:选中目标单元格(比如D2)→【数据】→【数据验证】→【设置】→“允许”选“序列”→“来源”框里直接填入$Z$1#(井号代表动态溢出区域,不是笔误)。

第三步:切到【出错警告】选项卡,取消勾选“输入无效数据时显示出错警告”。这一步必须做,否则每次输入关键词未匹配时会弹窗中断操作。

用OFFSET+MATCH兼容老版本Excel(无需M365)

方法一:基础模糊匹配(要求原始数据已排序)
确保A列姓名/产品名按升序排列(数据→排序→主要关键字选A列)。选中D2→【数据验证】→“允许”选“序列”→“来源”输入:=OFFSET($A,MATCH("*"&$D&"*",$A:$A00,0)-1,0,COUNTIF($A:$A00,"*"&$D&"*"),1)。注意:MATCH函数依赖排序,若原始数据乱序,结果会错位甚至报错。

办公Excel数据整理排版技巧|豆信信息技术
办公Excel数据整理排版技巧|豆信信息技术

技能简介:实用Excel表格整理排版技巧,解决数据杂乱、格式混乱问题,提升办公效率。 执行提示词:输出职场Excel数据整理、表格排版、格式统一的实用技巧,解决表格杂乱、数据混乱、排版不规范问题,提升日常办公效率。 本工具由豆信信息技术整理优化,轻量化实用模板,免费合规使用。

下载

方法二:绕过排序限制的增强写法
在B2输入辅助公式:=IF(COUNTIF($A$2:$A$1000,"*"&$D$2&"*")>=ROW(A1),INDEX($A$2:$A$1000,SMALL(IF(ISNUMBER(SEARCH($D$2,$A$2:$A$1000)),ROW($A$2:$A$1000)-ROW($A$2)+1),ROW(A1))),"",按Ctrl+Shift+Enter三键结束,再向下填充至B1000。然后数据验证“来源”改为$B$2:$B$1000。这个组合用数组逻辑强行定位,不依赖排序,但公式计算量大,数据超5000行时响应会变慢。

用VBA实现真交互式搜索(支持任意版本)

打开【开发工具】→【插入】→【ActiveX控件】→添加一个TextBox(文本框)和一个ListBox(列表框),分别命名为TextBox1和ListBox1。右键工作表标签→【查看代码】,粘贴以下脚本:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = 4 And Target.Row > 1 Then '仅对D列第2行起生效
    With TextBox1
      .Visible = True
      .Top = Target.Top
      .Left = Target.Left
      .Width = Target.Width
      .Height = Target.Height
      .Value = ""
    End With
    With ListBox1
      .Visible = True
      .Top = Target.Offset(0, 1).Top
      .Left = Target.Offset(0, 1).Left
      .Width = Target.Width
      .Height = Target.Height * 4
      .List = Worksheets("源数据").Range("A2:A1000").Value
    End With
  Else
    TextBox1.Visible = False: ListBox1.Visible = False
  End If
End Sub

Private Sub TextBox1_Change()
  Dim i&, arr, brr(): arr = Worksheets("源数据").Range("A2:A1000").Value
  ReDim brr(1 To UBound(arr), 1 To 1)
  For i = 1 To UBound(arr)
    If InStr(1, arr(i, 1), TextBox1.Text, 1) > 0 Then brr(i, 1) = arr(i, 1)
  Next
  ListBox1.List = brr
End Sub

运行后点击D2单元格,右侧自动弹出可输入的文本框和实时刷新的列表框——这才是真正的搜索引擎体验,输入“显卡”瞬间过滤出所有含该词的型号,且不占用额外列空间。

相关专题

更多
excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

2023.07.25

5661

7

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3556

5

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

2023.08.02

3340

3

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

2023.08.02

1444

3

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

2023.08.02

717

5

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

2023.08.09

5148

7

java导出excel
java导出excel

在Java中,我们可以使用Apache POI库来导出Excel文件。本专题提供java导出excel的相关文章,大家可以免费体验。

2023.08.18

7463

6

excel输入值非法
excel输入值非法

在Excel中,当输入的数值非法时,有以下多种处理方法。本专题为大家提供excel输入值非法的相关文章,大家可以免费体验。

2023.08.18

1801

3

excel生成二维码
excel生成二维码

虽然Excel本身并不直接支持生成二维码,但我们可以借助一些插件或宏来实现在Excel中生成二维码的功能。本专题为大家提供excel生成二维码的相关文章。

2023.08.18

3198

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 44.9万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.6万人学习