日常办公中,由于查找内容是目标数据的一部分,所以经验需要使用通配符或正则表达式进行模糊查找,今天我们就利用一个案例来说明在WPS表格中进行模型匹配的多种方法,这次我们不用VLOOKUP, 改用XLOOKUP,过程更简单一些。
❓ 痛点分析
比如我手上的这张表,A列摘要列里含有E列公司的简称,E列是完整公司全称和对应金额,要从A列提取公司简称并存到C列,再去E列找对应金额,手动操作的话十几行数据就要花5分钟,行数多了更是噩梦。那么如何实现呢?

获取简称,查询到账金额
✅ 两步解决方法
第一步:一键提取公司简称
提取公司简称有三种高效方法可选:
- WPSAI提取:在C2单元格中输入WPSAI.EXTRACT(A2,"括号里的全部内容"),回车即可提取括号里面成功,再光标放到右下角双击填充即可;
- 快捷键提取:在C2单元格输入第一个简称【鑫昌】,再向下先中所有空白单元格,按下CTRL+E,剩下的所有括号中简称会自动填充;
- 正则提取:公式输入=REGEXP(A2,"(\K\^)+"),批量提取括号内内容。其原理是:\K 舍弃左括号(,然后匹配后续非右括号的字符。
第二步:模糊匹配金额
提取完简称后,用XLOOKUP模糊匹配就能自动获取对应金额,直接套用下面的公式。第五参数使用2,即通配符匹配。
vbscript
=XLOOKUP(CONCAT("*",C2,"*"),E:E,F:F,"未找到",2)

如果我们选择XLOOKUP中的第3参数,利用XLOOKUP直接来查找,当 XLOOKUP 的第5参数设置为 3(正则匹配)时,即使查找值本身不包含正则,WPS表格也会对文本进行"部分匹配"扫描,而不是严格的精确匹配(此处存疑),如下面公式所示。
vbscript
省略写法:=XLOOKUP(C2,E:E,F:F,"未找到",3)
标准写法:=XLOOKUP(CONCAT(".*",C2,".*"),E:E,F:F,"未找到",3)
或者嵌套REGEXP函数一步到位:
vbscript
=XLOOKUP(REGEXP(A2,"(\K[^)]+"),E:E,F:F,"未找到",3)
最终效果如下所示:

XLOOKUP查询
嵌套REGEXP一步到位实现模糊匹配。

XLOOKUP+REGEXP
💡 最后总结
XLOOKUP进行模糊匹配的方法多样,操作灵活,只需选对第五参数,无须嵌入正则表达式即可进行模糊搜索,这比VLOOKUP更简单方便,还能避免手动输入错误,整套操作下来,原本半小时的对账工作2分钟就能搞定。
平时遇到类似的包含关键词的文本提取、跨表匹配场景,都可以用XLOOKUP方法,熟练之后效率提升非常明显, 有兴趣的朋友可以试一试~