我正在尝试将字符串与文本匹配。我想返回这些“映射”的索引。
我试过了:=INDEX($A$2:$A$1000;MATCH(F2;$B$2:$B$1000;1))
但是,我的错误值:
在映射中,值都是不同的,如示例所示!
有什么建议我做错了吗?
感谢您的回复! 的更新
我在google电子表格中使用了以下公式:
https://docs.google.com/spreadsheets/d/1qTrAcwIWuGFhF7w6Dm2-A_1km9eAyILnEzkac8GMkQ8/edit?usp=sharing
我还没有得到映射。有什么建议我做错了吗?
答案 0 :(得分:2)
MATCH(F2; $ B $ 2:$ B $ 1000; 1)返回$ B $ 2中最后一个单元格的位置:$ B $ 1000,大于或等于F2。
'此文字包含地图Me1'大于$ B $ 2中的所有单元格:$ B $ 1000所以你得到最后一个=> ' MAP10'在$ A2中编入索引时:$ A1000
'映射我2'等于映射我2,所以你得到匹配的单元格=> '地图2'
没有小于或等于< Lorem ipsum的地图me3'所以你得到#N / A
您可以在您要匹配的文本中放置通配符(F2)但不在查找范围内($ B $ 2:$ B $ 1000),因此要进行不精确的匹配,您必须使用带有FIND的数组公式或者搜索。
一个这样的公式(假设查找列表不包含空格)是
=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 输入
输入我添加的条目与列表中的任何项目都不匹配。
整个公式可以包含在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)),"")
(如果这适合您的语言环境,请将,替换为; )。
这有点短,是非数组公式,但如果有多个匹配则返回最后一个匹配。
=IFERROR(LOOKUP(9E+307,SEARCH($B$2:INDEX($B$2:$B$1000,COUNTA($B$2:$B$1000)),F2),$A$2:$A$1000),"")
答案 1 :(得分:2)