首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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 内容的单元格个数,即需要引用多少行

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)))&""

公式释义:

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学习世界

转发、在看也是爱!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191128A0MSIE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券