我需要找到特定范围内的部分文本,并在找到的文本的单元索引下获取一个X行的值。我尝试过使用INDEX和MATCH函数但没有成功。
如示例所示:查找部分文本ASDFGHJK
并且需要返回三行下的值:(I NEED THIS VALUE
)。我试图得到找到的单元格的行索引和+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,额外列允许在连接字符串中找到最后一个条目的第一个。