索引匹配:单元格到映射的string

我正在尝试将string匹配到文本。 我想返回这些“映射”的索引。

我试过: =INDEX($A$2:$A$1000;MATCH(F2;$B$2:$B$1000;1))

但是,我错误的价值观:

在这里输入图像说明

在映射中,值都是不同的,如示例中所示!

任何build议我做错了什么?

感谢您的回复! UPDATE

我在谷歌电子表格中使用了下面的公式:

https://docs.google.com/spreadsheets/d/1qTrAcwIWuGFhF7w6Dm2-A_1km9eAyILnEzkac8GMkQ8/edit?usp=sharing

我还没有得到映射。 任何build议我做错了什么?

MATCH(F2; $ B $ 2:$ B $ 1000; 1)返回$ B $ 2中的最后一个单元格的位置:$ B $ 1000,它大于或等于F2。

  • '这个文本包含Map Me1'大于$ B $ 2:$ B $ 1000中的所有单元格,所以当您在$ A2:$ A1000中索引时,您将得到最后一个=>'Map10'

  • '地图我2'等于映射我2,所以你得到匹配的单元格=>'地图2'

  • 没有小于或等于'Lorem ipsum map me3'的单元格,所以你得到#N / A

您可以将通配符放入您想要匹配的文本(F2)中,但不能在查找范围($ B $ 2:$ B $ 1000)中进行匹配,因此要进行不精确的匹配,您必须使用FIND或SEARCH来使用数组公式。

一个这样的公式(假设查找列表不包含空白)是

 =INDEX($A$2:$A$1000,MATCH(TRUE,ISNUMBER(SEARCH($B$2:INDEX($B$2:$B$1000,COUNTA($B$2:$B$1000)),F2)),0)) 

必须使用Ctrl Shift Enterinput

我已经包含了一个不匹配列表中的任何项目的条目。

整个公式可以包装在IFERROR语句中以避免#N / A。

 IFERROR(INDEX($A$2:$A$1000,MATCH(TRUE,ISNUMBER(SEARCH($B$2:INDEX($B$2:$B$1000,COUNTA($B$2:$B$1000)),F2)),0)),"") 

(如果这适用于您的语言环境请用;replace)。

这是一个短一点,是非数组公式,但返回最后一场比赛,如果有多个匹配。

 =IFERROR(LOOKUP(9E+307,SEARCH($B$2:INDEX($B$2:$B$1000,COUNTA($B$2:$B$1000)),F2),$A$2:$A$1000),"") 

在这里输入图像说明

巴里是公式上的大师,但你可以尝试这个数组公式

G1input=IF(LEN(F2)>0,INDEX($A$2:$A$10,MIN(IF(NOT(ISERR(FIND(LOWER($B$2:$B$10),LOWER(F2)))),ROW($B$2:$B$10)-1,MAX(ROW($B$2:$B$10)+1)))),"no data")

使用shift ctrl一起input

在这里输入图像说明