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 France 和 Ge[ 的查找值是部分的时,再进行一次编辑以显示公式有效=63=] 德国,
如何根据包含部分字符串(范围 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 France 和 Ge[ 的查找值是部分的时,再进行一次编辑以显示公式有效=63=] 德国,