Excel跨工作表模糊匹配求和实现方案求助
可行公式方案
根据需求,这里提供几种不同兼容性的模糊匹配求和方案:
方案1:兼容所有Excel版本(SUMPRODUCT+SEARCH)
该方法无需依赖高版本Excel的正则函数,通过字符串查找实现模糊匹配。在Sheet1的B2单元格输入以下公式,下拉填充即可:
=SUMPRODUCT(--ISNUMBER(SEARCH(SUBSTITUTE(A2, "--", ""), Sheet2!$A:$A)), Sheet2!$B:$B)
- 逻辑:先用
SUBSTITUTE(A2, "--", "")去掉Sheet1名称末尾的--;若有其他特殊后缀,可嵌套SUBSTITUTE扩展,比如SUBSTITUTE(SUBSTITUTE(A2, "--", ""), "+", ""); SEARCH函数在Sheet2的A列中查找包含核心名称的单元格,返回位置值或错误值;ISNUMBER将位置值转为TRUE、错误值转为FALSE,--再把布尔值转换为1或0;- 最后
SUMPRODUCT将匹配行对应的B列数值求和。
方案2:高版本Excel专属(REGEX+SUMIFS)
若使用Excel 365或2021及以上版本,可利用正则表达式更灵活提取核心名称:
=SUMIFS(Sheet2!$B:$B, Sheet2!$A:$A, "*"®EXREPLACE(A2, "[^a-zA-Z0-9]", "")&"*")
- 逻辑:
REGEXREPLACE(A2, "[^a-zA-Z0-9]", "")直接移除所有非字母数字的特殊字符,提取纯核心名称; - 用
*包裹核心名称,通过SUMIFS匹配Sheet2中所有包含该核心名称的单元格,对对应B列数值求和。
方案3:针对固定后缀的简化SUMIF
如果Sheet1的后缀只有--,Sheet2的后缀仅为+或T这类固定格式,可直接用通配符实现:
=SUMIF(Sheet2!$A:$A, SUBSTITUTE(A2, "--", "")&"*", Sheet2!$B:$B)
- 逻辑:去掉Sheet1名称的
--后,用&"*"匹配所有以该核心名称开头的Sheet2单元格,直接求和对应数值。
内容的提问来源于stack exchange,提问作者Kuzmichok
相关产品推荐
相关产品推荐

