在数组中搜索单独数组中的文本字符串,返回该文本字符串(Excel)
我有一列文本值(下面的C列),它们的长度各不相同。我有一个单独的文本值数组(下面的列A)。我想要一个公式,它将查看C列中的字符串并返回它匹配的列A中的单词。如果有多个匹配(罕见,可能不会发生),它只会返回一个。在数组中搜索单独数组中的文本字符串,返回该文本字符串(Excel)
请参阅我的例子:
列d是我期待的结果。正如你所看到的,这将需要某种模糊字符串匹配。该单词可能出现在单元格中的任何位置。它不需要区分大小写。但我需要它基本上将结果从字符串中提取出来。
谢谢!
您也可以尝试这个公式=INDEX(A:A,SUMPRODUCT(MATCH(1,NOT(ISERR(SEARCH(A:A,C2)))*1,0)))
。由于它是一个数组公式,因此使用CTRL + SHIFT + ENTER输入它。
1.使用数组公式时,应将引用数据的大小限制为数据集以减少不必要的迭代次数。目前您的公式正在进行超过500万次计算。 2.您的公式可简化为= = INDEX($ A $ 2:$ A $ 5,MATCH(1,ISNUMBER(SEARCH($ A $ 2:$ A $ 5,C2))* 1,0))'不需要SUMPRODUCT当使用Ctrl-Shift-Enter时。 –
谢谢你,我更加关注搜索引用整列的搜索速度......但是更确切地说是更优雅的解决方案。 –
一个,稍微简单:
=IF(COUNTIF($C$1:$C$100," * "&A2&" * ")>0,A2,"")
完善。非常感谢! – Lorenzo
这是一个美丽的解决方案!你能解释你的答案是如何工作的吗?特别是'AGGREGATE'功能对我来说一直是个挑战,我个人并不知道使用它的人。您的公式是否简单地返回'$ A $ 2:$ A $ 5'列表中的第一个值,导致公式的除法部分返回非错误值? – TotsieMae