Excel多条件筛选别硬扛!FILTER函数3秒搞定N个关键字
今天咱们要攻克一个让无数据人头疼的难题:如何同时筛选包含多个关键字的记录?
前几期教了单关键字筛选的妙法,但后台被追问:"归如果要同时筛选A组、B组、F组怎么办?"
别急,这就送上升级版解决方案!
假设有一份人员信息表,班组列写着"A1班""B3组""F-测试组"等五花八门的格式。
要求同时筛选出包含A、B、F任意字母的组别成员。
一、传统方法
用传统方法得写三个FIND函数叠加?
=FILTER(A2:G11,ISNUMBER(FIND(J1,A2:A11))+ISNUMBER(FIND(K1,A2:A11))+ISNUMBER(FIND(L1,A2:A11)))
如果再增加几个关键字,那公式长到你怀疑人生!
二、矩阵运算大法
公式:
三步走战略:从复杂到极简的完整流程
Step 1:FIND函数组团出战
在H2单元格时输入公式:
=FIND(M1:O1,A2:A11)
(1)FIND函数会分别查找每个关键字在单元格中的位置,返回结果是一个三维矩阵(行数×3列)
(2)找到关键字时返回位置数字,未找到时返回#VALUE!错误值
Step 2:ISNUMBER转换,True/False现原形
=ISNUMBER(FIND(M1:O1,A2:A11))
- SNUMBER函数将FIND的结果转换为逻辑值
- 找到关键字的位置数字会被转换为TRUE(等价于1)
- 未找到的错误值会被转换为FALSE(等价于0)
Step 3:MMULT矩阵运算,1/0魔法变身
=MMULT(ISNUMBER(FIND(M1:O1,A2:A11))*1,{1;1;1})
MMULT(数组1,数组2)
1、*1:将TRUE/FALSE转换为1/0,这是矩阵运算的基础数值形式,数组中都要是数字。
2、MMULT:用矩阵乘法计算每行的总分。
3、{1;1;1}:这是一个垂直数组常量,作为矩阵乘法的第二个参数。第一参数关键字查找出来是三列,第二个参数要是行进行聚合。分号;表示换行,创建垂直方向的三个元素,元素数量必须与关键字数量一致。
MMULT函数如果不太懂的话,没有关系,你只要记住,数组1的列数=数组2的行数
Step 4:FILTER函数收尾,精准筛选
=FILTER(A2:G11,MMULT(ISNUMBER(FIND(M1:O1,A2:A11))*1,{1;1;1}))
把MMULT函数公式作为第一参数,筛选出是1的数据,就是按关键字的查找的记录。
动态优势:
1、修改条件里的关键字(如改成"B"),结果瞬间刷新!
支持任意数量的关键字组合,只需同步调整MMULT函数中的{1;1;1;……} 数量
关注我,解锁更多Excel黑科技!
转发给同事:拯救他们于冗长公式的水深火热!
收藏备用:下次遇到多条件筛选直接套用!
留言区见:你遇到过最复杂的筛选需求是什么?