乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel下拉菜单怎么做-Excel中可以按关键字搜索的下拉菜单,两种做法任你选

excel下拉菜单怎么做-Excel中可以按关键字搜索的下拉菜单,两种做法任你选

作者:乔山办公网日期:

返回目录:excel表格制作

下拉菜单的制作和使用,在工作中非常普及,很多人都会。


但是,如果下拉菜单选项列表过多,每次选择的时候要不停地拖动、寻找,这会非常浪费时间。


所以,今天就教大家做一些优化:制作带模糊查询功能的下拉菜单。也就是说,在保留原有功能的基础上,还可以通过输入关键字,搜索菜单项列表。


下面就来看制作方法。


案例:

基于下图 1 的数据表制作查询表格,要求:


  • 将“姓名”制作成下拉菜单
  • 根据“姓名”查询出“与投保人关系”
  • 下拉菜单具有关键字模糊查询功能

效果如下图 2 所示。


解决方案:

今天教大家两种解决方案,先说优劣。


解决方案 1:


优点:


  • 公式相对简单,更加容易上手

缺点:


  • “姓名”列必须排序,如果顺序打乱,查询结果会出错
  • 只能从姓名的第一个字开始,依次输入关键字查询;比如,如果查询“美”,结果会出错

解决方案 2:


优点:


  • “姓名”列不需要排序
  • 不需要从第一个字开始查询,查任何位置的关键字都能出正确结果,这才是真正的智能查询

缺点:


  • 公式相对复杂一些,对部分同学来说理解较困难
解决方案 1:

先看一下最终效果。


先将表格按“姓名”重新排序。


1. 选中 A1 至 B15 区域,选择菜单栏的“数据”-->“排序”


2. 在弹出的对话框中按以下方式设置 --> 点击“确定”


  • 勾选“数据包含标题”
  • 主要关键字:姓名

现在数据表按照姓名的拼音升序排列了。


接下来开始制作下拉菜单


3. 选中 D2 单元格 --> 选择菜单栏的“数据”-->“数据验证”


4. 在弹出的对话框中选择“设置”选项卡,进行以下设置:


  • 允许:序列
  • 来源:=OFFSET($A$2,MATCH("*"&$D$2&"*",$A$2:$A$14,0)-1,0,COUNTIFS($A$2:$A$15,"*"&$D$2&"*"),1)

公式释义:


  • OFFSET(起始单元格,要偏移的行数,偏移的列数为 0,要引用多少行,引用 1 列)
  • MATCH("*"&$D$2&"*",$A$2:$A$14,0)-1:在 A2 至 A15 区域模糊查找包含 D2 内容的单元格,找到后返回行号,将该行号 -1,即需要偏移的行数
  • COUNTIFS($A$2:$A$15,"*"&$D$2&"*"):统计 A2 至 A15 区域中,包含 D2 内容的单元格个数,即需要引用多少行

有关 OFFSET+MATCH 组合公式的详解,请参见下方专栏中的【除了 vlookup,这几个经典组合公式基本可以解决所有查找问题】。


5. 选择“出错警告”选项卡 --> 取消勾选“输入无效数据时显示出错警告”--> 点击“确定”


最后设置 E 列的查询公式。


6. 在 E2 单元格中输入以下公式:


=IFERROR(VLOOKUP(D2,A:B,2,0),"")


现在就已设置完成,以下是演示效果。


解决方案 2:

相比前一种方法,效果更佳,不需要排序“姓名”列,还可以查找姓名中间的任何一个字。


1. 将 G 列用作辅助列,在 G2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter 使数组公式生效:


=INDEX(A:A,SMALL(IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$15)),ROW($A$2:$A$15),4^8),ROW(A1)))&""


以上是经典的万精油公式,有关万精油公式的详解,请参见下方专栏中的【除了 vlookup,这几个经典组合公式基本可以解决所有查找问题】。


公式释义:


  • A:A:在 A 列中查找
  • CELL("contents"):返回单元格的值
  • FIND(CELL("contents"),$A$2:$A$15):查找该值在“姓名”列表中是否存在,存在会返回一个位置数值,不存在则返回错误值
  • IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$15)),ROW($A$2:$A$15),4^8):用 isnumber 函数判断 find 结果是否为数值;如果是,就返回其行号;如果不是,则返回 4^8
  • SMALL(...,ROW(A1)):依次取出数组中第 n 小的值,这个 n 就是 row() 函数返回的值
  • 最后用 index 函数根据行值,查找出姓名
  • &"":去除无意义的 0 值

2. 向下拖动复制公式,至最后一个姓名所在的行


3. 选中 D2 单元格 --> 选择菜单栏的“数据”-->“数据验证”


4. 在弹出的对话框中选择“设置”选项卡,进行以下设置:


  • 允许:序列
  • 来源:选择刚才制作的辅助列区域

5. 选择“出错警告”选项卡 --> 取消勾选“输入无效数据时显示出错警告”--> 点击“确定”


6. 在 E2 单元格中输入以下公式:


=IFERROR(VLOOKUP(D2,A:B,2,0),"")


现在就已设置完成,以下是演示效果。


很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。


现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。





相关阅读

  • excel快捷键-Excel快捷键大全

  • 乔山办公网excel表格制作
  • 施老师:我们用OFFICE办公讲究的就是效率,所以能用快捷键的地方就要用快捷键。下面就由宁双学好网施老师分享一下EXCEL中很全的快捷键命令。1.快捷键之在工作表中移动和滚动向上、
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网