Excel - 如何根据另一个部分值列表过滤一个列表

Excel - how to filter a list based on another list of partial values

如何根据包含部分字符串(范围 F2:F3)的查找列表提取/过滤清单列表(范围 B3:C7)?

我知道,如果过滤字符串是完整的(不是部分的),公式将是 =FILTER(B3:C7, COUNTIF(F2:F3, B3:B7))

对于单个部分字符串(例如在单元格 F2 中),公式将是 =FILTER(B3:C7,ISNUMBER(SEARCH(F2,B3:B7))).

但如何将两者结合起来,即具有部分和多个过滤字符串?

一个选项是:

E7中的公式:

=FILTER(B3:C7,BYROW(B3:B7&"-",LAMBDA(a,SUM(--(IFERROR(FIND(F2:F3&"-",a),0)=1)))))

虽然JvdV先生,已经为您的查询提供了一个合适的解决方案,但是这里还有一些其他的选择,您也可以试试

• 单元格 E7

中使用的公式
=FILTER(B3:C7,MMULT(--ISNUMBER(SEARCH(TRANSPOSE(F2:F3),B3:B7)),ROW(F2:F3)^0)=1)

• 单元格 H7

中使用的公式
=LET(list,B3:C7,
c,B3:B7,
i,F2:F3,
x,--BYROW(c,
LAMBDA(a,(SUM(COUNTIF(a,"*"&i&"*"))>0))),
FILTER(list,x=1))

• 单元格 K7

中使用的公式
=LET(list,B3:C7,
p,B3:B7,
q,F2:F3,
x,MAP(p,LAMBDA(a,IF(SUM(COUNTIF(a,"*"&q&"*"))>0,a,""))),
FILTER(list,x<>""))

你也可以参考这个查询已经在Whosebug早些时候解决了这里是你也可以参考的link,


编辑

• 单元格 E7

中使用的公式
=FILTER(B3:C7,MMULT(--ISNUMBER(SEARCH("*"&TRANSPOSE(F2:F3)&"*",B3:B7)),ROW(F2:F3)^0))

然而,我分享的其他两个替代方案没有任何变化,请注意!


Fr for FranceGe[ 的查找值是部分的时,再进行一次编辑以显示公式有效=63=] 德国,