Excel – 在一个句子中search不同的单词,如果该单词存在于一个句子中,则打印该单词或打印其他单词

所以我有两个范围:

句子

我是汤姆
我是马特
我是约翰
 Johhny是我的名字
莫莉很酷

名称

波莉
莫莉
约翰
马特
汤姆
罗尼

所以我想比较名称与句子,如果从句子中存在一个单词我想要在结果中打印相应的名称。 如果一个句子中没有一个单词存在,我想要公式打印“other”。

任何帮助在这里。 我通过多个filter和一个非常大的公式来完成这个工作。 但是我想stream线这个。

这是我迄今为止使用的公式,没有任何结果

=(IF(ISNUMBER(SEARCH(K:K,G19)),K:K)) 

调整公式让我有限的结果。 一些帮助将是伟大的! 再次感谢

要find第一个名字,可以使用下面的数组公式 (通过Ctrl + Shift + Enterinput ):

 =IFERROR( INDEX(names, MIN(MATCH(TRUE, ISNUMBER(SEARCH(names, [@Sentences])), 0))), "other") 

说明:

  1. SEARCH(names, [@Sentences])将比较“名称”范围内的每个名称与当前句子

  2. MIN(MATCH(TRUE, ISNUMBER(...), 0))会find第一个匹配的名字

  3. INDEX(names, ...)将检索名称

  4. IFERROR(..., "other")将处理不匹配的情况

对于names ,请使用有限范围,例如K$2:K$999而不是K:K ,对于整列(或 – 行)范围,数组公式不能很好地优化。

请注意[@Sentences]是一个Excel表格符号,如果单元格G19包含单个句子,它应该等同于您的问题中的G19