如何在Excel中匹配相似字符串并返回对应下方单元格值
Excel相似字符串匹配并返回对应下方数值的解决方案
方法1:XLOOKUP函数(Excel 365/2021+)
利用通配符实现包含式相似匹配,直接返回目标数值。假设Sheet A中待匹配关键词在A1,要在A2返回结果,Sheet B的表头在第1行,目标数值在第2行:
=XLOOKUP("*"&A1&"*", SheetB!$1:$1, SheetB!$2:$2, "无匹配")
"*"&A1&"*":用通配符*匹配所有包含A1内容的表头字符串SheetB!$1:$1:指定Sheet B的表头行范围SheetB!$2:$2:指定表头下方的数值行(即要返回的目标行)"无匹配":匹配失败时的自定义返回内容,可按需修改
对应你的例子,A1是"Biology",该公式会匹配Sheet B中"Biology Course"的表头,返回其下方的200。
方法2:INDEX+MATCH组合(兼容旧版Excel)
如果你的Excel版本不支持XLOOKUP,用INDEX和MATCH的组合实现相同逻辑:
=IFERROR(INDEX(SheetB!$2:$2, MATCH("*"&A1&"*", SheetB!$1:$1, 0)), "无匹配")
MATCH("*"&A1&"*", SheetB!$1:$1, 0):定位Sheet B表头中包含A1内容的单元格列号INDEX(SheetB!$2:$2, 列号):根据列号提取对应数值IFERROR(...):处理匹配失败时的#N/A错误,返回自定义提示
进阶:精准模糊匹配(非包含式)
如果需要更灵活的相似匹配(比如部分字符重合但不是完全包含),可以结合SEARCH函数实现:
=XLOOKUP(TRUE, ISNUMBER(SEARCH(A1, SheetB!$1:$1)), SheetB!$2:$2, "无匹配")
SEARCH(A1, SheetB!$1:$1):检查Sheet B表头是否包含A1的内容(不区分大小写,用FIND可区分)ISNUMBER(...):将搜索结果转为布尔值,XLOOKUP匹配TRUE的结果
注意事项
- 根据实际表格结构调整行号:如果Sheet B的表头在第3行,数值在第4行,就把公式中的
$1:$1改为$3:$3,$2:$2改为$4:$4 - 若Sheet B名称包含空格,需用单引号包裹,比如
'Sheet B'!$1:$1
内容的提问来源于stack exchange,提问作者Kevin L
相关产品推荐
相关产品推荐

