查找字符串并从相邻单元格返回信息

时间:2015-11-04 14:44:28

标签: excel vba excel-vba excel-formula

使用Excel 2010.我需要查看另一组单元格中是否存在一组单元格中的字符串,如果存在,则返回与该字符串匹配的相邻单元格中的信息。我最初用SEARCH,ISNUMBER和嵌套的IF语句完成了这个,但我的源数据集中有几十个条目,必须搜索的字符串有几百个条目。数据类似于图片中的数据(简化示例):

enter image description here

对于有限的数据集,我使用嵌套的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列值。

2 个答案:

答案 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行。

干杯。

相关问题