如何在表格中匹配零件编号与供应商定义的格式
零件编号格式匹配与供应商匹配解决方案
一、修正你的正则表达式错误
你当前使用的正则[{5}][-]\d{3}存在两个关键问题:
[{5}]写法错误:它会匹配{、5、}中的任意单个字符,而非你需要的「5个数字」,正确写法是\d{5}- 缺少字符串锚点:没有
^(匹配文本开头)和$(匹配文本结尾),会导致部分匹配(比如12345-123abc也会被误判),我们需要确保匹配整个单元格的格式。
针对两种供应商格式,正确的正则表达式如下:
- 对应
EXAMPLE 1的XXXXX-XXX格式:^\d{5}-\d{3}$ - 对应
EXAMPLE 2的XX-XXXXX-XX格式:^\d{2}-\d{5}-\d{2}$
二、用公式实现自动匹配供应商
假设你的零件编号在单元格A6,可以根据规则数量选择以下方法:
方法1:IF嵌套判断(适合规则少的场景)
直接通过嵌套REGEXMATCH判断格式并返回供应商:
=IF(REGEXMATCH(A6, "^\\d{5}-\\d{3}$"), "EXAMPLE 1", IF(REGEXMATCH(A6, "^\\d{2}-\\d{5}-\\d{2}$"), "EXAMPLE 2", "未知供应商"))
注:Excel中反斜杠\需要转义为\\,Google Sheets部分版本可直接用\d,转义后兼容性更强。
方法2:VLOOKUP+数组公式(适合规则多的场景)
先把正则规则和供应商对应关系整理到单独区域(比如D2:D3存正则,E2:E3存供应商名称),再用数组公式批量匹配:
=VLOOKUP(TRUE, ARRAYFORMULA(REGEXMATCH(A6, D$2:D$3)), E$2:E$3, FALSE)
该公式会遍历所有正则规则,找到第一个匹配项后返回对应供应商。
三、验证示例
- 输入
12345-123时,REGEXMATCH(A6, "^\\d{5}-\\d{3}$")返回TRUE,对应供应商EXAMPLE 1 - 输入
12-12345-12时,REGEXMATCH(A6, "^\\d{2}-\\d{5}-\\d{2}$")返回TRUE,对应供应商EXAMPLE 2
内容的提问来源于stack exchange,提问作者Justin.k
相关产品推荐
相关产品推荐

