索引匹配:单元格到映射的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),"")
巴里是公式上的大师,但你可以尝试这个数组公式
在G1
input=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