26

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

示例

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

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

4

3 回答 3

36

您可以使用“通配符”,MATCH因此根据彼得的回复假设 H1 中的“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-Enter

于 2013-03-22T13:12:57.977 回答
12

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

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

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

于 2013-03-22T10:16:27.150 回答
2

我只是在谷歌搜索解决同样的问题时发现了这一点,并且不得不对解决方案进行微小的更改以使其适用于我的情况,因为我有 2 个类似的子字符串“Sun”和“Sunstruck”要搜索。提供的解决方案是在搜索“Sun”时找到错误的条目。B列中的数据

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

于 2015-09-25T23:57:47.780 回答