You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel公式需求:通过子串匹配实现交易自动分类

Excel交易描述按子串匹配商户类别解决方案

核心公式方案

针对你的需求,以下两种公式可实现A列交易描述与C列子串的包含匹配,并返回D列对应的商户类别:

1. 返回第一个匹配的类别(推荐)

使用XLOOKUP结合ISNUMBER+SEARCH实现数组匹配,会返回第一个命中的子串对应的类别:

=XLOOKUP(TRUE,ISNUMBER(SEARCH($C$2:$C$101,A2)),$D$2:$D$101,"无匹配")
  • 旧版Excel需按Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可
  • 最后一个参数"无匹配"可替换为你需要的无匹配提示内容

2. 返回最后一个匹配的类别

若需要返回最后一个命中的子串对应的类别,使用LOOKUP公式:

=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH($C$2:$C$101,A2)),$D$2:$D$101),"无匹配")
  • IFERROR用于处理无匹配时的#N/A错误,替换为自定义提示

迁移至新工作表后的适配

当C、D列移至名为商户类别的新工作表时,只需修改公式的引用范围:

# XLOOKUP版本
=XLOOKUP(TRUE,ISNUMBER(SEARCH('商户类别'!$C$2:$C$101,A2)),'商户类别'!$D$2:$D$101,"无匹配")

# LOOKUP版本
=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH('商户类别'!$C$2:$C$101,A2)),'商户类别'!$D$2:$D$101),"无匹配")

之前方法失效的原因

  • VLOOKUP/XLOOKUP直接用子串匹配时默认是精确匹配,未结合SEARCH判断包含关系;通配符仅在查找值中添加*时生效,无法批量遍历C列所有子串
  • INDEX-MATCH-ISNUMBER若未以数组形式计算(旧版Excel未按Ctrl+Shift+Enter),则无法遍历所有子串完成匹配

额外注意事项

  • 确保C列子串与A列交易描述大小写一致(A列全大写,C列子串建议也统一为大写);若大小写不一致,可将公式中的SEARCH改为SEARCH(UPPER($C$2:$C$101),A2)强制统一大写匹配
  • 若子串存在优先级需求,可调整C列顺序:XLOOKUP返回第一个匹配项,优先级高的子串放在C列上方;LOOKUP返回最后一个匹配项,优先级高的放在下方

内容的提问来源于stack exchange,提问作者Umby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:22:10