Google Sheets反向VLOOKUP实现:含动态标识的分类匹配需求
Google Sheets 银行流水自动分类方案(ARRAYFORMULA实现)
核心公式(直接套用)
假设:
- 匹配表名为
Sheet2:A列是匹配字符串(String),B列是对应分类(Category) - 流水表名为
Sheet1:A列是交易描述(Description),要在C列生成分类
在流水表的C2单元格输入以下公式(整列自动生效,无需下拉):
=ARRAYFORMULA(IF(A2:A="",,XLOOKUP(TRUE,REGEXMATCH(A2:A,REGEXESCAPE(Sheet2!A$2:A$100)),Sheet2!B$2:B$100,"未匹配",0,1)))
公式说明
ARRAYFORMULA:实现整列批量计算,无需逐行下拉公式IF(A2:A="",,):跳过流水表中空白的描述行,避免无效计算REGEXMATCH(A2:A,REGEXESCAPE(Sheet2!A$2:A$100)):检查流水描述是否包含匹配表中的字符串,REGEXESCAPE用于处理字符串中的正则特殊字符(如.、*等),避免匹配出错XLOOKUP:查找第一个符合条件(TRUE)的匹配项,返回对应的分类;"未匹配"为无匹配时的默认显示值,可自行修改- 最后两个参数
0,1:指定精确匹配布尔值TRUE,并从上到下查找第一个匹配项,保证优先级符合匹配表的排序
优化建议
- 若需要优先匹配更长的字符串(比如避免"星巴克"和"星巴克咖啡"同时存在时误匹配短字符串),先将匹配表按
String列的长度降序排序 - 匹配表的范围
Sheet2!A$2:A$100可根据实际数据量调整,若匹配表无空白行,也可改为Sheet2!A2:A
内容的提问来源于stack exchange,提问作者Daryl Teo
相关产品推荐
相关产品推荐

