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")
说明:
-
SEARCH(names, [@Sentences])
将比较“名称”范围内的每个名称与当前句子 -
MIN(MATCH(TRUE, ISNUMBER(...), 0))
会find第一个匹配的名字 -
INDEX(names, ...)
将检索名称 -
IFERROR(..., "other")
将处理不匹配的情况
对于names
,请使用有限范围,例如K$2:K$999
而不是K:K
,对于整列(或 – 行)范围,数组公式不能很好地优化。
请注意[@Sentences]
是一个Excel表格符号,如果单元格G19
包含单个句子,它应该等同于您的问题中的G19
。