Excel 索引匹配:单元格中的字符串到映射

Excel 索引匹配:单元格中的字符串到映射,excel,excel-formula,excel-2010,shift,ctrl,enter,Excel,Excel Formula,Excel 2010,Shift,Ctrl,Enter,我正在尝试将字符串与文本匹配。我想返回这些映射的索引 我试过:=索引$A$2:$A$1000;匹配F2$B$2:$B$1000;一, 但是,我的价值观是错误的: 在映射中,值都是不同的,如示例所示 有什么建议我做错了什么 感谢您的回复! 更新 我在谷歌电子表格中使用了以下公式: 我还没有得到映射。有什么建议我做错了什么吗?MATCHF2$B$2:$B$1000;1返回$B$2中最后一个单元格的位置:$B$1000,大于或等于F2 “This text contains Map Me1”大于$B$

我正在尝试将字符串与文本匹配。我想返回这些映射的索引

我试过:=索引$A$2:$A$1000;匹配F2$B$2:$B$1000;一,

但是,我的价值观是错误的:

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

有什么建议我做错了什么

感谢您的回复! 更新

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


我还没有得到映射。有什么建议我做错了什么吗?

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

“This text contains Map Me1”大于$B$2:$B$1000中的所有单元格,因此在$A2:$A1000中编制索引时,将得到最后一个=>“Map10”

“map me 2”等于map me 2,因此您可以得到匹配的单元格=>“map 2”

没有小于或等于“Lorem ipsum map me3”的单元格,因此您得到N/A

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

假设查找列表不包含空格的一个公式是

=INDEX($A$2:$A$1000,MATCH(TRUE,ISNUMBER(SEARCH($B$2:INDEX($B$2:$B$1000,COUNTA($B$2:$B$1000)),F2)),0))
必须使用CtrlShiftEnter输入

我包含了一个与列表中的任何项目都不匹配的条目

整个公式可以封装在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),"")

匹配F2$B$2:$B$1000;1返回$B$2中最后一个单元格的位置:$B$1000,大于或等于F2

“This text contains Map Me1”大于$B$2:$B$1000中的所有单元格,因此在$A2:$A1000中编制索引时,将得到最后一个=>“Map10”

“map me 2”等于map me 2,因此您可以得到匹配的单元格=>“map 2”

没有小于或等于“Lorem ipsum map me3”的单元格,因此您得到N/A

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

假设查找列表不包含空格的一个公式是

=INDEX($A$2:$A$1000,MATCH(TRUE,ISNUMBER(SEARCH($B$2:INDEX($B$2:$B$1000,COUNTA($B$2:$B$1000)),F2)),0))
必须使用CtrlShiftEnter输入

我包含了一个与列表中的任何项目都不匹配的条目

整个公式可以封装在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),"")

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

在G1中输入 =IFLENF2>0,索引$A$2:$A$10,最小FnotiserFindLower$B$2:$B$10,最小FnotiserFindLower$B$2,行$B$2:$B$10-1,最大行$B$2:$B$10+1,无数据

一起使用


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

在G1中输入 =IFLENF2>0,索引$A$2:$A$10,最小FnotiserFindLower$B$2:$B$10,最小FnotiserFindLower$B$2,行$B$2:$B$10-1,最大行$B$2:$B$10+1,无数据

一起使用


比我的更短更简单,因此更好。谢谢!但在做了更多的研究之后,查找技巧甚至更短了=LOOKUP9E+307,SEARCH$B$2:INDEX$B$2:$B$1000,COUNTA$B$2:$B$1000,F2,a$2:a$1000和非数组公式。@TomSharpe非常感谢您的回复!我试图在谷歌电子表格中使用你的公式,但没有得到确切的结果。映射在其中不起作用。有什么建议吗?@MrQuad这些在谷歌表单中确实有效,但你必须将它们包装在数组公式中。。。函数,而不是使用Ctrl-Shift-Enter键输入它们。抱歉,使用Ctrl-Shift-Enter在谷歌表单中确实有效,并将ArrayFormula放在原始公式的周围,而不是花括号{}。查找中的9E+307意味着什么?比我的更短更简单,因此更好。谢谢!但在做了更多的研究之后,查找技巧甚至更短了=LOOKUP9E+307,SEARCH$B$2:INDEX$B$2:$B$1000,COUNTA$B$2:$B$1000,F2,a$2:a$1000和非数组公式。@TomSharpe非常感谢您的回复!我试图在谷歌电子表格中使用你的公式,但没有得到确切的结果。映射在其中不起作用。有什么建议吗?@MrQuad这些在谷歌表单中确实有效,但你必须将它们包装在数组公式中。。。函数,而不是使用Ctrl-Shift-Enter键输入它们。很抱歉,使用Ctrl-Shift-Enter在Google Sheets中确实有效,并将ArrayFormula放在原始公式的周围,而不是花括号{}。查找中的9E+307意味着什么?也有效,但我没有得到它的最大部分?删除不匹配项。现在回想起来,当我看到这个查找时,我为什么不再玩公式了……非常感谢你的回复!我试图在谷歌电子表格中使用你的公式来映射我的收入/支出。有什么建议我做错了什么?下面是一个例子的链接
:您需要将公式中的$B$4更改为$B$2也可以,但我没有得到最大部分?以淘汰非匹配项。现在回想起来,当我看到这个查找时,我为什么不再玩公式了……非常感谢你的回复!我试图在谷歌电子表格中使用你的公式来映射我的收入/支出。有什么建议我做错了什么?下面是一个例子的链接:您需要将公式中的$B$4更改为$B$2您的公式应该是=ArrayFormulaINDEX$A$2:$A$1000,MATCHTRUE,ISNUMBERSEARCH$B$2:INDEX$B$2:$B$1000,COUNTA$B$2:$B$1000,H2,0即更改搜索$B$4。。。要搜索$B$2。。。我已经更改了第一个2您的公式应该是=数组for公式索引$A$2:$A$1000,MATCHTRUE,ISNUMBERSEARCH$B$2:INDEX$B$2:$B$1000,COUNTA$B$2:$B$1000,H2,0即更改搜索$B$4。。。要搜索$B$2。。。我已经更改了前2个