引子:我们想解决一个看似很简单的问题,在下表中给定项目号,求它对应的负责人。

比如,项目B对应的负责人是“李四”。

按照以往的思路,先用match找到多少行,然后在对应的行中寻找符合条件的在多少列,再查到对应的负责人,这种方式比较繁杂,扩展性也不好。

我们是否可以有一个更简单的方法解决这个问题呢?

Filter函数就横空出世了!

我们在这里引入了Filter函数,它能很好的解决这个问题。

1、第一个参数是想要在哪里(区域)筛选;

2、第二个参数是对应的条件是什么,这里也是用区域,大小和方向和需要筛选的一致;

3、可选参数,如果没有找到,默认返回值。

根据项目号,求出金额,用filter函数也可以实现vlookup的相同功能:


如果源数据和需要查询的不确定一行或一列,vlookup就无法胜任了,这时候filter函数可以大显身手。


可以再添加一个条件,比如月份大于1的返回值:

因为之前已经有一个条件了,要添加一个条件(两个条件都满足),就用*号,表示逻辑值:所有的条件都满足的时候才返回1。

0*任何值=0,1*1=1; 1+任何值=1,0+0=0;(逻辑计算)

*表示AND/条件与,+表示OR/条件或

Filter函数注意点:

1、Filter返回的数组,可能不只占用一个单元格(行/列),如果已有数据挡住了它,就会溢出报错;

2、数组的任何操作,都可以在filter的结果中再次加工,如求和、计数等

3、筛选区域和条件区域的行或列一定要对应。


回到之前的问题:如何根据项目号,返回其负责人?

首先用一个filter,根据项目号,可以返回一个数组:

上述返回了一个数组,我们可以利用这个数组,再次使用filter函数筛选出来。

首先,需要筛选的区域就是那几个名字B1:E1;

然后,筛选的条件是=V

这里使用了两个Filter函数顺利找出了结果。


因为返回的是一个数组,我们还可以对结果进行处理,如求最大值,平均值,计数等,一个函数可以实现sumifs/countifs/maxifs等的功能。

还可以将数组的值,合并成一个字符串,减少我们复制粘贴的时间。

到这里,filter函数的基本功能就试完了,当然excel之美在于多搜索、多尝试、多研究,filter还有很多没有提到的用处,欢迎提出。

结语:发现excel之美,在好奇心的驱使下,我们不停探索,将可以发现更多、更有用的功能,下一次,我们将去认识有点烧脑的Inderect函数,领略不断前行的快乐。


#excel教学##职场excel小技巧##微头条流量扶持##马克龙访华三天有何收获##office##关于office办公软件的知识##学习#​#办公室#​