使用Excel 2010.我需要查看另一组单元格中是否存在一组单元格中的字符串,如果存在,则返回与该字符串匹配的相邻单元格中的信息。我最初用SEARCH,ISNUMBER和嵌套的IF语句完成了这个,但我的源数据集中有几十个条目,必须搜索的字符串有几百个条目。数据类似于图片中的数据(简化示例):
对于有限的数据集,我使用嵌套的IF语句,如:
IF(ISNUMBER(SEARCH($D$2,$A2,1)),"Cat Info",IF(ISNUMBER(SEARCH($D$3,$A2,1)),"Dog Info",IF(ISNUMBER(SEARCH($D$4,$A2,1)),"Elephant Info","Not Found")))
但是现在这两组数据都太大而无法做到。
我需要做的是在A列中搜索字符串D中的关键字。如果找到关键字,我需要从E列返回相应的信息。
例如,在列B2中,由于单词dog
在A2中,我希望E3(Dog Section
)的内容显示在B2中。
我的关键字列表是唯一的(列D,列表),我知道在A列(TheString)的字符串中会出现零个或一个关键字。
我认为INDEX& MATCH函数可能是我的解决方案的一部分,但我不确定如何在字符串中找到哪个List关键字,然后返回Information列值。
答案 0 :(得分:5)
不需要VBA。这可以通过一个简单的公式来完成:
在单元格B2中输入此公式:
=LOOKUP(2,1/SEARCH(D$2:D$7,A2),E$2:E$7)
根据需要向下复制。
注意:调整范围参考数据的大小。
答案 1 :(得分:-2)
没有做到这一切,但这个公式
= MAX(IF(ISNUMBER(SEARCH(D1,$ A $ 1:$ A $ 4,1)),ROW($ A $ 1:$ A $ 4),0))
数组公式
将为您提供A1:a4的行,其中包含D1等。然后你可以索引。然而,它只会显示最大行,所以如果它在1& 2,那么它只会显示第2行。
干杯。