摘要:假设有一份人员信息表,班组列写着"A1班""B3组""F-测试组"等五花八门的格式。
今天咱们要攻克一个让无数据人头疼的难题:如何同时筛选包含多个关键字的记录?
前几期教了单关键字筛选的妙法,但后台被追问:"归如果要同时筛选A组、B组、F组怎么办?"
别急,这就送上升级版解决方案!
假设有一份人员信息表,班组列写着"A1班""B3组""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))
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;……} 数量
转发给同事:拯救他们于冗长公式的水深火热!
收藏备用:下次遇到多条件筛选直接套用!
留言区见:你遇到过最复杂的筛选需求是什么?
来源:天哥教育