Excel

您所在的位置:网站首页 excel设计数据验证 Excel

Excel

2024-07-12 10:02| 来源: 网络整理| 查看: 265

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

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

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

下面就来看制作方法。

案例:

基于下图 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^8SMALL(...,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 高手。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3