如何确定单元格是否包含列中的任何值

如何确定单元格是否包含列中的任何值

我的问题是如何识别 A 列中包含 B 列中任意值的单元格。 具体来说:

我有一份包含 19,000 个名字和 10,000 个密码的列表。我正在尝试识别包含名字的密码。

例如,密码“mary”和“1mary!”都应该返回 True。

使用此公式,只有完全匹配才会被标记为 True:

=If(Iserror(Match("*"&B1&"*",A:A,0)),"False","True")

我发现自己想做以下事情,但没有成功:

=If(Iserror(Match(B1,"*"&A:A&"*",0)),"False","True")

[其中 B1 是密码,A:A 是姓名列表]。

答案1

您已经接近了。采取您尝试的方法,然后切换顺序或参数:

=IF(ISERROR(MATCH("*"&A:A&"*",B1,0)), "False", "True")

现在将其限制(绑定)到实际的名称列表,而不是整个A列:

=IF(ISERROR(MATCH("*"&A$1:A$19000&"*",B1,0)), "False", "True")

并添加一个AND()函数:

=IF(AND(ISERROR(MATCH("*"&A$1:A$19000&"*",B1,0))), "False", "True")

并在末尾输入Ctrl++ Shift,这样它就变成了Enter数组公式并用花括号显示:

{=IF(AND(ISERROR(MATCH("*"&A$1:A$19000&"*",B1,0))), "False", "True")}

并拖动/填充。

PS,除非你真的真的想要生成这些字符串(或者你确实想要生成其他字符串,例如“bad”和“good”),你可以简化为:

=NOT(AND(ISERROR(MATCH("*"&A$1:A$19000&"*",B1,0))))

(我在看到 Excellll 的答案之前写了这篇文章。)

答案2

您可以在数组公式中使用FIND而不是。返回找到搜索词的字符编号,如果未找到则返回错误。使用以下内容。MATCHFIND

=SUMPRODUCT(NOT(ISERROR(FIND($A$1:$A$19000,B1)))*1)>0

它的SUMPRODUCT作用是使其像数组函数一样工作而不需要任何特殊的输入方法。

注意:您需要公式中名称的精确范围才能正确运行。如果这会造成问题,您可以改用以下方法:

=SUMPRODUCT(NOT(ISERROR(FIND(A:A,B1)))*1,NOT(ISBLANK(A:A))*1)>0

相关内容