美爆了!Excel万能查找模板,公式如此优雅,惊呆众人!

醉香说职场 2024-07-18 07:31:06

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!

——首发于微信号:桃大喵学习记

今天跟大家分享的是一个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),空值)

二、制作万能查询模板

第一步、

先制作按“姓名”这列查询

也就是当输入查询关键词后,姓名这列数据中包含对应关键词的所有员工全部查找出来。

在目标单元格中输入公式:

=FILTER(A:F,A:A=I1,"无内容")

然后点击回车。

解读:

这一步只是实现了关键词必须是完整姓名,这样才能根据姓名这列数据进行查询。

第二步、

根据按关键词对“姓名”这列进行模糊查询

要写实现根据关键词对姓名这列数据进行模糊查询,我们可以把公式修改成:

=FILTER(A:F,IFERROR(SEARCH(I1,A:A),0),"无内容")

然后点击回车即可

解读:

①查询条件使用到了SEARCH函数,也就是只要查询关键词在A列姓名这列内,就满足条件,最后就能筛选出对应的信息。再结合IFERROR函数,把姓名不包含关键词的返回错误值屏蔽掉,都返回0

②如果查找关键词是空,上面的公式是会查找出所有信息的,这时我们可以用IF函数做一个判断。

公式修改成:

=FILTER(A:F,IF(I1="","",IFERROR(SEARCH(I1,A:A),0)),"无内容")

如果只修改判断条件,当查询条件是空值时,返回结果也会是错误值,因为FILTER函数第2参数没有判断条件。

再把公式修改成:

=IFERROR(FILTER(A:F,IF(I1="","",IFERROR(SEARCH(I1,A:A),0)),"无内容"),"")

这样当查询关键词是空值时就不返回任何信息了。

第三步,

进行多条件查找

上面的公式只是查找“姓名”这列数据符合条件的信息,我们需要查找所有列包含查询关键词的信息。其实,就是利用FILTER函数多条件查询,用多个SEACH公式去查找搜索,A列,B列,C列,D列,E列,F列,只要有任何一个满足条件的数据,就会把对应的A:F列结果给筛选出来。

公式如下:

=IFERROR(FILTER(A:F,IF(I1="","",IFERROR(SEARCH(I1,A:A),0))+IF(I1="","",IFERROR(SEARCH(I1,A:A),0))+IF(I1="","",IFERROR(SEARCH(I1,C:C),0))+IF(I1="","",IFERROR(SEARCH(I1,D:D),0))+IF(I1="","",IFERROR(SEARCH(I1,E:E),0))+IF(I1="","",IFERROR(SEARCH(I1,F:F),0)),"无内容"),"")

第四步、

公式化繁为简,提高可读性

上面的函数公式太长了,中间有过个条件用“+”连接,看到都眼花缭乱了,这是我们可以使用LET函数让函数公式化繁为简,复杂公式变的简洁又优美。

最终公式:

=LET(

姓名,IF(I1="","",IFERROR(SEARCH(I1,A:A),0)),

部门,IF(I1="","",IFERROR(SEARCH(I1,B:B),0)),

工资,IF(I1="","",IFERROR(SEARCH(I1,C:C),0)),

性别,IF(I1="","",IFERROR(SEARCH(I1,D:D),0)),

考核成绩,IF(I1="","",IFERROR(SEARCH(I1,E:E),0)),

级别,IF(I1="","",IFERROR(SEARCH(I1,F:F),0)),

IFERROR(FILTER(A:F,姓名+部门+工资+性别+考核成绩+级别,"无内容"),"")

)

然后点击回车即可

解读:

很多新手小伙伴看到上面的公式是不是有点被惊到了,公式还能这样写?其实,上面的公式就是利用LET函数把多个计算结果,分配给指定的名称,最后通过结果表达式中直接引用名称来完成查找匹配。

①我们把SEACH函数公式,根据关键词分别对A列,B列,C列,D列,E列,F列这几个公式,分别命名为:姓名、部门、工资、性别、考核成绩、级别,这样在最后的结果表达式可以直接引用名称。(备注:上面的定义的名称,可以根据实际情况自行命名,我是直接使用了列标题名称)

②在结果表达式FILTER函数第2参数条件就可以直接设置成:姓名+部门+工资+性别+考核成绩+级别,就就是只要满足一个成立就可以返回对应结果,其实就是OR或的关系;如果是同时满足中间就用“*”号连接,就是AND且的关系。

以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!

0 阅读:1