有了这个函数,再也不用万金油了。
你好,我是刘卓。欢迎来到我的公号,excel函数解析。不可否认,office365新增函数的功能很强大,很实用。以前很复杂的问题,比如提取不重复值,一对多查询,多关键字排序等,现在轻而易举搞定。
函数说明
filter根据指定的条件来筛选数据,结果返回一个数组。函数语法如下,有3个参数。
=FILTER(区域,条件,[如果没有满足条件的值,让它返回的值])
第1参数是要筛选的区域或数组。可以是一行、一列或多行多列。
第2参数是要筛选的条件,也就是某行或某列满足的条件,返回的结果是一个由true和false组成的逻辑值数组。结果为true的将被筛选出来。
1.单条件筛选(一对多查询)
=FILTER(A4:D15,C4:C15=H1,"")
第1参数A4:D15是要筛选的区域;第2参数C4:C15=H1是要筛选的条件,也就是C4:C15这一列的部门是否等于H1的生产部,如果相等返回true,否则返回false,结果为{FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE},是一个逻辑值数组。
第3参数的空本文""是我们自己指定的,也就是如果C4:C15的部门中没有等于生产部的,就让它返回""。
当第2参数的条件区域中有满足筛选的条件时,对应的第1参数的记录就被筛选出来。这个函数挺好理解的。
2.多条件与的筛选(多对多查询)
还是同一份数据源,现在的要求是筛选出籍贯是北京且工资大于5000的所有记录。在F23单元格输入下面的公式,完成。现在是多条件且的关系,第2参数的两个条件用乘法,非0的数字表示true,0表示false。
=FILTER(A23:D34,(B23:B34=H19)*(D23:D34>5000),"")
3.多条件或的筛选(多对多查询)
=FILTER(A41:D52,(LEN(A41:A52)=2)+(D41:D52>6000),"")
4.筛选出前3条记录
按照F列的部门合并相同部门的人员名单,在G77单元格输入公式=TEXTJOIN("、",,FILTER(A$77:A$88,C$77:C$88=F77)),向下填充。首先用filter筛选出各部门的人员,然后用textjoin把这些名单合并起来。
今天分享的只是单个新函数的用法,如果多个新函数配合起来使用会有更好的效果,实用性也更强。希望对你有所帮助,有任何问题可以在讨论区留言。
https://pan.baidu.com/s/1Db3Ii6OcFT6YRhTwbsEllw