在单个父字符串中搜索多个子字符串

在单个父字符串中搜索多个子字符串

我整天都在寻找与我类似的问题。许多问题都很接近,但我的问题有点不同:

我在 A 列中有一个姓氏列表。在单元格 B1 中,我有某人的全名,名字和姓氏仅由空格隔开(没有逗号或标点符号)。

我如何确定 A 列列表中的任何姓氏是否可以在单元格 B1 中找到。

我知道如何在单元格范围内查找单个子字符串,但这恰恰相反,在单个文本单元格内搜索多个子字符串中的任意一个。例如:

如果 A 列的 A1、A2 和 A3 单元格中分别有“Smith”、“Johnson”和“Baker”,而 B1 单元格中有“Joe Johnson”,则 C1 应显示“真”或其中有 1。另一方面,如果 B1 单元格中有单词“Billy Bob”,则 C1 应显示“假”或其中有 0。

希望这很清楚,非常感谢任何和所有的帮助。

答案1

首先,您需要从单元格 B1 中提取姓氏

MID(B2,FIND(" ",B2)+1,99)

然后您可以使用该结果对 A 列执行 Match():

=MATCH(MID(B1,FIND(" ",B1)+1,99),A:A,0) (截图中的 C1)

这将返回找到的名称的行号。如果未找到名称,则单元格包含 #N/A。为了避免这种情况,您可以使用 IsNumber 返回 TRUE/FALSE 或使用 IfError 返回空白单元格以表示错误。

=ISNUMBER(MATCH(MID(B1,FIND(" ",B1)+1,99),A:A,0))(在 D1)

=IFERROR(MATCH(MID(B1,FIND(" ",B1)+1,99),A:A,0),"")(在 E1)

屏幕截图中的公式已被复制到第 2 行。

在此处输入图片描述

相关内容