Excel情报局
职场联盟Excel
如下图所示:
A1:D9单元格区域为筛选的数据源,表示名称、产地、颜色以及单价的对照表。我们想要筛选A1:D9区域中产地为深圳的所有的名称与单价的数据,显示在H:I列。因为“名称”与“单价”在A1:D9区域位于第一列和第四列,属于不连续的区域,所以筛选有些难度。
我们使用FILTER函数解决这个问题。
FILTER函数是Office365 Excel和金山WPS表格中新增的一个强大函数,用于根据指定的条件筛选数据区域,并返回满足条件的行。
FILTER函数的基本语法为:
FILTER(筛选结果所在区域,条件所在区域=查找值)
由于第一参数筛选结果所在区域应该为一个连续的区域。假如我们直接使用FILTER函数:
=FILTER(A2:D9,B2:B9=F2)
筛选A2:D9区域的数据,当条件所在区域B2:B9满足条件为F2单元格“深圳”时,执行筛选,将数据源中所有为产地为深圳的行筛选出来。但是我们只想留下“名称”与“单价”信息。也就是连续的筛选区域限制了我们不连续的筛选需求。
FILTER函数可以进行横向筛选。
因为我们想要筛选的H1:I1区域的“名称”与“单价”在条件区域A1:D1中属于横向排列,这种情况用FILTER函数就方便多了:
=FILTER($A$2:$D$9,$A$1:$D$1=H1)
筛选$A$2:$D$9区域的数据,当条件所在区域$A$1:$D$1满足条件为H1单元格“名称”时,执行筛选,将数据源中所有“名称”列标题所对应的整列数据就筛选出来了。
所以我们将第一参数A2:D9与第二参数条件所在区域A1:D1加上绝对引用后,就可以向右填充公式得到对应的“单价”列信息了。
最后只需要再嵌套一个FILTER函数,执行纵向筛选就好了。
因为所要筛选的条件“深圳”,位于条件所在区域B2:B9区域的纵向方向,所以称之为FILTER函数的纵向筛选,这也是FILTER函数最常用的筛选模式:
=FILTER(FILTER($A$2:$D$9,$A$1:$D$1=H1),$B$2:$B$9=$F$2)
我们以上一步FILTER函数的返回结果作为当前FILTER函数的筛选区域,当条件所在区域$B$2:$B$9满足条件为$F$2单元格“深圳”时,执行筛选,将数据源中所有“深圳”所在的行数据筛选出来。
注意:条件所在区域B2:B9与条件F2单元格,需要加上绝对引用,因为我们要向下填充函数公式,不能对这两个部分同步位移。
〖往期知识点精彩超链接点击阅读〗