Office 365新增的Filter查询函数,完爆Vlookup函数

如题所述

第1个回答  2022-07-06
VLOOKUP函数是我们在日常工作中使用频率非常高的一查询函数,我们可以用VLOOKUP函数,根据一个查询条件,比如员工编号,找到该员工在人事信息表中的部门、职务等信息,也可以在工资表中找到其对应的工资数据。

VLOOKUP很实用,不过它有三大缺点:

01 只能根据左侧的查询条件返回右侧的结果

比如下图所示的这个表格,我们可以根据员工编号找到员工姓名,但是如果想要用VLOOKUP函数根据员工姓名查询员工编号,是做不到的,除非结合到IF函数形成虚拟表。

02 无法直接屏蔽查询不到返回的#N/A的结果

如果查询结果中有很多查找不到的数据,就会出现大量的#N/A的错误信息,想要隐藏这些#N/A,必须要结合到IFERROR函数。

03 无法直接实现多条件查询

必须建立辅助列或者通过数组公式的方法来实现。

04 无法一次带出符合查询条件的多个结果

比如将上一张图左侧的表格的数据,按照订单编号的条件,展示所有A订单的商品型号到金额的数据到下图所示的表格中。需要结合到MATCH函数,通过复杂的函数嵌套才能实现。

而如果你使用的Office是365的版本,就可以利用365中新增的FILTER函数,既可以实现现有VLOOKUP函数具备的功能,还可以实现刚刚提到的VLOOKUP做不到的四项功能。

我们先来来看看FILTER的语法:

FILTER(数据区域,筛选条件,[无满足条件的记录时返回的值])

现在我们通过一些案例来系统学习FILTER函数的用法。

单条件查询也就是实现VLOOKUP函数的功能。比如下图中我们需要根据员工编号查询员工姓名,只需要输入函数:

=FILTER(B2:B11,A2:A11=D3,"")

第一个参数B2:B11是需要返回的结果列,这个参数可以是一列也可以是多列。第二个参数A2:A11=D3是筛选条件,等号左侧的是数据源表中的条件范围列,右侧则是结果列中的查询条件。第三个参数是如果找不到符合条件的数据的返回结果,这里输入的""表示空。

因为FILTER函数不像VLOOKUP函数那样,必须将条件列和结果列都包含到数据区域中,这样我们就可以任意选择结果列,也就可以解决VLOOKUP不能实现逆向查询的问题。

而且也不用借助IFERROR函数隐藏查找不到时返回的#N/A的错误信息了。

当有多个查询条件时,用“+”表示条件“或”,“或”是指多个条件中只要一个满足的情况;用“*”表示条件“与”,“与”是指多个条件必须同时满足的情况。

比如下图所示的案例,我们要查询A订单中1847这款商品的销售额,这就是与的情况,多个条件需要同时满足。这里输入的公式是:

=FILTER($H$2:$H$15,($A$2:$A$15=J2)*($D$2:$D$15=K2),"")

每个条件放在一对()中,中间用*号连接,可以继续往后连接条件。

如果想要一次返回符合条件的多列的数据,可以在第一个参数中选择多列。比如下图所示的这个案例。

这里第一个参数我们输入的是2列的数据,这样返回的结果就有2列,而通过+号则表示符号条件的数据有2个,这样返回结果就有2行2列。我们无须选择像以前数组公式那样选择多行多列,只需要将光标放在一个单元格中,比如这里的D3单元格,公式会自动将结果扩展到右侧和底部。

而且使用Filter函数我们都不需要使用绝对引用,因为它们仅存在于一个单元格中,并将其结果溢出到相邻单元格。

我们再用这个案例用动图感受一下FILTER函数的强大之处。

当我们改变订单编号的条件,底部的数据就会动态更新。

这个Office 365新增的Filter查询函数,是不是完爆Vlookup函数呢?
相似回答