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

如何从联想产品列表单元格中提取符合规则的10位产品编号?

解决方案

方案1:Excel动态数组公式(适用于Excel 365/2021及以上版本)

使用组合公式提取符合规则的编号,公式如下:

=LET(
    raw, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"("," "),")"," "),"_"," "),
    parts, TEXTSPLIT(raw, " ", , TRUE),
    filtered, FILTER(parts, LEN(parts)=10 AND ISNUMBER(SEARCH("[A-Za-z]",parts)) AND ISNUMBER(SEARCH("[0-9]",parts))),
    IFERROR(INDEX(filtered,1),0)
)

公式说明:

  • raw:将括号、下划线替换为空格,确保被干扰符号包裹的编号能被单独拆分
  • parts:按空格拆分文本并过滤空值,得到所有独立内容片段
  • filtered:筛选出长度为10、同时包含字母和数字的片段
  • IFERROR(INDEX(filtered,1),0):返回第一个符合条件的编号,无匹配时返回0

方案2:VBA自定义函数(兼容所有Excel版本)

若Excel版本不支持动态数组,可创建自定义函数实现提取:

  1. 按Alt+F11打开VBA编辑器
  2. 插入新模块,粘贴以下代码:
Function GetLenovoSN(rng As Range) As String
    Dim regEx As Object
    Dim matches As Object
    Set regEx = CreateObject("VBScript.RegExp")
    With regEx
        .Global = True
        .Pattern = "\b(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]{10}\b"
    End With
    Set matches = regEx.Execute(rng.Value)
    If matches.Count > 0 Then
        GetLenovoSN = matches(0).Value
    Else
        GetLenovoSN = "0"
    End If
End Function
  1. 返回Excel界面,在目标单元格输入=GetLenovoSN(A1)即可提取对应编号

正则规则说明:

  • \b:匹配单词边界,避免从长字符串中截取部分内容
  • (?=.*[A-Za-z]):确保内容包含至少一个字母
  • (?=.*[0-9]):确保内容包含至少一个数字
  • [A-Za-z0-9]{10}:匹配10位纯字母数字组合

验证结果

输入返回结果
LEGION T5 (90SV003WGE)90SV003WGE
FLEX 5 (82R700BEGE) XKLUSIV82R700BEGE
V17-IRU 83A2001NGE83A2001NGE
LENOVO E16 G1 21JT000HGE_WIN 1121JT000HGE
LENOVO THINKCENTRE M70T 12Q6000AGE I7-1212Q6000AGE
IDEAPAD 3 17ALC60

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:42:32