我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!
——首发于微信号:桃大喵学习记
前段时间跟大家分享了一篇教程,后来有个小伙伴提了一个非常好的建议:“不用每个参数都加IF判断,直接在最后的LET外套个IF来判断查询关键词是否为空就可以。”。首先非常感谢这个小伙伴提出的宝贵建议,今天就在这个小伙伴建议基础上对Excel万能查找模板进行公式优先,让公式更简约优雅。同时,欢迎大家积极留言讨论,期待与你的每一次互动,让我们共同成长!
Excel万能查找模板实现效果
如下图所示,左侧是员工信息表格数据,有多个字段信息,我们通过查询关键词,只要左侧表格任何字段信息包含这个关键词,都会被自动筛选查找出来。
一、主要函数介绍
要实现万能查询模板的制作需要使用到下面这几个主要的函数LET函数、SEARCH函数、IFERROR函数、FILTER函数等。下面先对这几个函数进行简单介绍。
1、LET函数介绍
功能:将计算结果分配给名称。可用于通过定义公式内的名称来存储中间计算结果和值。这些名称仅在LET函数作用域内适用。
语法:=LET(名称1,名称1值,名称2,名称2值……,结果表达式)
第1参数名称1:分配的第1个名称
第2参数名称1值:分配给第1个名称的值
下面的参数依此类推
最后一个参数就是结果表达式。
实例:
公式:=LET(苹果,10,价格,3.5,苹果*价格)
结果是:35
解读:
第一参数:苹果,就是指定的第一个名称
第二参数:10,函数会将这个10赋值给“苹果”
第三参数:价格,就是指定的第二个名称
第四参数:3.5,函数会将这个3.5赋值给“价格”
第五参数:苹果*价格,这个就是结果表达式,现在苹果=10,价格=3.5,所以它们相乘的结果就是35
2、SEARCH函数介绍
功能:查找字符首次出现位置
语法:=SEARCH(要查找的字符串,被查找字符串,[开始位置]
主要是利用这个函数信息按列模糊匹配
3、IFERROR函数介绍
功能:如果公式的计算结果为错误值, 则 IFERROR 返回您指定的值;否则, 它将返回公式的结果。
语法:=IFERROR(值,错误值)
4、FILTER函数介绍
功能:FILTER是基于定义的条件筛选一系列数据的函数,它由数组,包括,空值三个参数所构成。
语法:使用语法=FILTER(数组,包括,空值)
解读:
我们可以使用FILTER函数轻松实现单条件或者多条件查询,使用FILTER进行多条件查询窍门在第2个参数:
①如果需要多个条件同时满足,就用*把多个条件连接
公式:=FILTER(返回数组,(条件1)*(条件2)*(条件N),空值)
②如果需要多个条件满足任意一个,就用+把多个条件连接
公式:=FILTER(返回数组,(条件1)+(条件2)+(条件N),空值)
二、制作Excel万能查询模板步骤
第一步、
先制作按“姓名”这列查询
也就是当输入查询关键词后,姓名这列数据中包含对应关键词的所有员工全部查找出来。
在目标单元格中输入公式:
=FILTER(A:F,A:A=I1,"无内容")
然后点击回车。
解读:
这一步只是实现了关键词必须是完整姓名,这样才能根据姓名这列数据进行查询。
第二步、
根据按关键词对“姓名”这列进行模糊查询
要写实现根据关键词对姓名这列数据进行模糊查询,我们可以把公式修改成:
=FILTER(A:F,IFERROR(SEARCH(I1,A:A),0),"无内容")
然后点击回车即可
解读:
查询条件使用到了SEARCH函数,也就是只要查询关键词在A列姓名这列内,就满足条件,最后就能筛选出对应的信息。再结合IFERROR函数,把姓名不包含关键词的返回错误值屏蔽掉,都返回0。
第三步、
进行多条件查找
上面的公式只是查找“姓名”这列数据符合条件的信息,我们需要查找所有列包含查询关键词的信息。其实,就是利用FILTER函数多条件查询,用多个SEACH公式去查找搜索,A列,B列,C列,D列,E列,F列,只要有任何一个满足条件的数据,就会把对应的A:F列结果给筛选出来。
公式如下:
=FILTER(A:F,IFERROR(SEARCH(I1,A:A),0)+IFERROR(SEARCH(I1,A:A),0)+IFERROR(SEARCH(I1,C:C),0)+IFERROR(SEARCH(I1,D:D),0)+IFERROR(SEARCH(I1,E:E),0)+IFERROR(SEARCH(I1,F:F),0),"无内容")
第四步、
公式化繁为简,提高可读性
上面的函数公式太长太乱了,中间有过个条件用“+”连接,看到都眼花缭乱了,这是我们可以使用LET函数让函数公式化繁为简,复杂公式变的简洁又优美。
把公式最终优化为:
=IF(I1="","",
LET(
姓名,IFERROR(SEARCH(I1,A:A),0),
部门,IFERROR(SEARCH(I1,B:B),0),
工资,IFERROR(SEARCH(I1,C:C),0),
性别,IFERROR(SEARCH(I1,D:D),0),
考核成绩,IFERROR(SEARCH(I1,E:E),0),
级别,IFERROR(SEARCH(I1,F:F),0),
FILTER(A:F,姓名+部门+工资+性别+考核成绩+级别,"无内容")
)
)
解读:
很多新手小伙伴看到上面的公式是不是有点被惊到了,公式还能这样写?其实,上面的公式就是利用LET函数把多个计算结果,分配给指定的名称,最后通过结果表达式中直接引用名称来完成查找匹配。
①首先利用SEACH函数公式,根据关键词分别对A列,B列,C列,D列,E列,F列进行关键词模糊查询,把对应的SEACH函数公式分别命名为:姓名、部门、工资、性别、考核成绩、级别,这样在最后的结果表达式可以直接引用名称。(备注:上面的定义的名称,可以根据实际情况自行命名,我是直接使用了列标题名称)
②在结果表达式FILTER函数第2参数条件就可以直接设置成:姓名+部门+工资+性别+考核成绩+级别,就就是只要满足一个成立就可以返回对应结果,其实就是OR或的关系;如果是同时满足中间就用“*”号连接,就是AND且的关系。
③最后使用IF函数进行判断,如果关键词不为空再执行查询,否则返回空。
以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!