查找范围内的部分文本,返回单元格值

时间:2014-09-22 15:53:22

标签: excel text partial

我有一个包含3列的数据数组,随着更多数据的添加,行数也会增加。我有一些已知的值,例如XX-12345,XXX-12345或XXXX-12345,我需要识别并返回该单元格中的内容。问题是命名约定不是标准,因此值可能如下所示:XX-12345-Temp,XX-12345.Temp XXX-12345-Temp,XXX-12345.Temp或XXXX-12345- Temp,XXXX-12345.Temp

以下是我必须执行此功能的代码,但它并不总是有效。有时它返回零,我无法弄清楚为什么会这样做。

    =INDIRECT("R"&REPLACE(TEXT(MIN(IF(ISNUMBER(SEARCH(F2,$A$2:$C$15349)),(ROW($A$2:$C$15349))*1000+COLUMN($A$2:$C$15349))),"000000"),4,0,"C"),FALSE)

2 个答案:

答案 0 :(得分:1)

我不确定你真的需要在这个结构中使用REPLACE。您可以使用:

= INDIRECT(TEXT(MIN(IF(ISNUMBER(SEARCH(F2,$ A $ 2:$ C $一万五千三百四十九)),10 ^ 5 * ROW($ A $ 2:$ C $一万五千三百四十九)+ COLUMN($ A $ 2:$ C $一五三四九))), “R0C00000”),FALSE)

此致

答案 1 :(得分:0)

该公式仅适用于第999行,因为在第1000行ROW * 1000 = 1,000,000,这将打破" 000000"在公式中 - 尝试此版本,适用于最多99,999行的范围

=INDIRECT("R"&REPLACE(TEXT(MIN(IF(ISNUMBER(SEARCH(F2,$A$2:$C$15349)),(ROW($A$2:$C$15349))*1000+COLUMN($A$2:$C$15349))),"00000000"),6,0,"C"),FALSE)

我改变了" 000000"至" 00000000"因此,REPLACE函数中的4需要为6