32个新函数之FILTER,比VLOOKUP厉害十倍!
第八集:32个新函数,个个都是绝顶高手,精心整理分享!FILTER,查找能力比VLOOKUP厉害十倍!
用法:
FILTER(数组,包括,空值)
数组:要筛选的数组;
包括:布尔值数组,其中TRUE表示要保留的行或列;
空值:如果未找到,则返回指定的值。
公式一:查找单值返回一行
=FILTER(B2:D5,A2:A5=F3,"未找到")
解析:
以班级列A2:A5为筛选区域,判断是否符合等于“二班”的条件,返回对应姓名、语文、数学多列数据。
公式二:未找到返回指定值
=FILTER(B2:D5,A2:A5="三班","未找到")
解析:
以班级列A2:A5为筛选区域,判断是否符合等于“三班”的条件,结果未找到返回指定值“未找到”。
公式三:查找单值返回多行多列
=FILTER(A2:D5,A2:A5="一班","")
解析:
根据班级列进行筛选,筛选出一班的所有数据。
公式四:自定义筛选
=FILTER(A2:D5,E2:E5)
解析:
FILTER的第二个参数,可以为0与非0数字组成的数组,非0表示保留。
公式五:FILTER+COUNTIF
=FILTER(A1:D4,COUNTIF(A6:C6,A1:D1))
解析:
COUNTIF计数为1的保留,按列筛选出姓名、数学、班级对应的数据。
公式六:FILTER+XMATCH
=FILTER(A1:D4,IFNA(XMATCH(A1:D1,{"姓名","数学","班级"}),0))
解析:
根据XMATCH定位查找并用IFNA判断查找错误值返回0,作为筛选的条件,按列筛选出姓名、数学、班级对应的数据。
公式七:多条件筛选(且)
=FILTER(A2:D5,(A2:A5="一班")*(D2:D5>120),"")
解析:
判断班级列是否等于“一班”,数学成绩列是否大于120,两列相乘,同时满足的结果为1,其中有一个因数为0结果必然为0,再用FILTER筛选出语文大于100或数学大于120的数据。
FILTER的第二个参数,需同时满足多个条件,用“*”连接。
公式八:多条件筛选(或)
=FILTER(A2:D5,(C2:C5>100)+(D2:D5>120),"")
解析:
判断语文成绩是否大于100,数学成绩是否大于120,两列相加,只要满足其中一个加数不为0,结果就会返回非0,再用FILTER筛选出想要保留的数据。
FILTER的第二个参数,需满足多个条件中的其中之一,用“+”连接。
公式九:二次筛选
=FILTER(FILTER(A2:D5,A1:D1="语文"),A2:A5="一班")
解析:
第一次筛选出语文列数据,筛选的结果,作为第二次筛选的数组区域;第二次筛选再判断班级列是否等于“一班”,从而通过两次筛选得出一班语文成绩。