查找范围内的部分文本,返回索引

时间:2013-03-22 09:00:52

标签: excel

我需要找到特定范围内的部分文本,并在找到的文本的单元索引下获取一个X行的值。我尝试过使用INDEX和MATCH函数但没有成功。

egzample

如示例所示:查找部分文本ASDFGHJK并且需要返回三行下的值:(I NEED THIS VALUE)。我试图得到找到的单元格的行索引和+3得到所需的值(“我需要这个值”),但没有成功。

任何想法如何做到这一点?

3 个答案:

答案 0 :(得分:35)

您可以使用"通配符"与MATCH所以假设" ASDFGHJK"根据彼得的回复,你可以使用这个常规公式

=INDEX(G:G,MATCH("*"&H1&"*",G:G,0)+3)

MATCH只能引用单个列或行,因此如果要搜索6个列,则必须设置具有6个MATCH函数的公式或更改为另一个方法 - 尝试此"数组公式",假设A2中的搜索数据:G100

=INDIRECT("R"&REPLACE(TEXT(MIN(IF(ISNUMBER(SEARCH(H1,A2:G100)),(ROW(A2:G100)+3)*1000+COLUMN(A2:G100))),"000000"),4,0,"C"),FALSE)

通过 Ctrl 确认 - Shift - 输入

答案 1 :(得分:11)

这个公式将完成这项工作:

=INDEX(G:G,MATCH(FALSE,ISERROR(SEARCH(H1,G:G)),0)+3)

您需要将其作为数组公式输入,即按 Ctrl - Shift - Enter 。它假定您要搜索的子字符串位于单元格H1中。

答案 2 :(得分:2)

我刚刚在google搜索解决同样的问题时发现了这个问题,并且不得不对解决方案进行微小改动以使其在我的情况下工作,因为我有2个类似的子串,“Sun”和“Sunstruck”来搜索。提供的解决方案是在搜索“Sun”时找到错误的条目。 B栏中的数据

我添加了另一列C,公式C1 =“”& B1&“”并将搜索更改为= COUNTIF(B1:B10,“*”& A1&“*”)> 0,额外列允许在连接字符串中找到最后一个条目的第一个。