Filter函数有着强大的数据筛选功能,可以轻易根据条件进行筛选。如下图所示在下表中筛选出所有财务部的员工:
=FILTER(A2:I15,C2:C15=”财务部“)
但有一个问题困扰着很多用户,就是如果想筛选出不连续的列怎么办?如下图所示只筛选出员工编码等6连不连续的列。
解决这个问题,先看一下filter函数的参数:
第一个参数是数组,可以是单元格区域也可以一组数,第二个能返回TRUE或False的条件,第三个是如果筛选不到显示的值。
本题重点是第一个参数,它可以是多个不连区的区域或数组吗?可以!
在Excel中能把多个不连区域组合成一个区域,常用的有iF和choose函数。
其中if只能组合两个不连续的区域,常用在Vlookup反向和多条件查找。比如用下面公式可以把A列和C列数据组合成新的两列数据。
=IF({1,0},A2:A15,C2:C15)
而本题中要返回的有多列,所以今天的另一个主角登场了,它就是Choose函数,当它第一个参数是一组数时,它就可以把多列值组合成一个新的数组。
=CHOOSE({1,2,3,4,5,6},A2:A15,B2:B15,D2:D15,E2:E15,G2:G15,I2:I15)
注:Choose第一个参数是一个数字,可以从后面N个参数中返回第一个参数指定位置的值。
至此,用filter+choose就可以筛选返回不连续的列了。
=FILTER(CHOOSE({1,2,3,4,5,6},A2:A15,B2:B15,D2:D15,E2:E15,G2:G15,I2:I15),C2:C15=”财务部”)
不过….如果你的office365升级到最新版本,用filter+hstack更简单。因为hstack可以直接把多列合并在一起。
=FILTER(HSTACK(A2:B15,D2:E15,G2:G15,I2:I15),C2:C15=”财务部”)
Ps:虽然今天用的函数Excel其他版本无法使用,但庆幸的是国产WPS已添加了FILTER函数,只是HSTACK函数没有。
微信扫一扫加关注,Office自学网官方微信公众号,
专注分享软件安装和视频教程,让你一号在手,办公无忧!