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

如何从Excel单元格的任意位置提取固定格式的NCT编号?

提取Excel文本中的NCT编号方法

方法一:函数组合提取(适合快速处理或小量数据)

假设原始文本在A列,在B1单元格输入以下公式后下拉填充:

=MID(A1,SEARCH("NCT",A1),11)
  • 逻辑说明:SEARCH("NCT",A1)定位文本中"NCT"首次出现的位置,MID从该位置开始提取11个字符(刚好覆盖"NCT"+8位数字的长度)。
  • 若需提取文本中最后一个NCT编号,可使用:
=MID(A1,SEARCH("NCT",SUBSTITUTE(A1,"NCT","XXX",LEN(A1)-LEN(SUBSTITUTE(A1,"NCT","")))),11)

方法二:Power Query批量提取(适合大量数据处理)

  1. 选中原始数据列,点击数据选项卡 → 从表格/区域(Excel 2016及以上版本),将数据导入Power Query编辑器。
  2. 点击添加列 → 自定义列,输入以下M语言公式:
= Text.RegexMatch([原始列名], "NCT\d{8}"){0}

(注意将公式中的[原始列名]替换成你实际的列名称)
3. 点击确定后,新列会自动提取出NCT编号,最后点击关闭并上载将结果返回至Excel。

方法三:VBA宏批量处理(适合需重复使用的场景)

  1. 按下Alt + F11打开VBA编辑器,插入新模块。
  2. 粘贴以下代码:
Sub ExtractNCT()
    Dim rng As Range
    Dim cell As Range
    Dim regEx As Object
    
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.Pattern = "NCT\d{8}"
    regEx.Global = False
    
    Set rng = Application.InputBox("请选择包含文本的列", Type:=8)
    
    For Each cell In rng
        If regEx.Test(cell.Value) Then
            cell.Offset(0, 1).Value = regEx.Execute(cell.Value)(0)
        Else
            cell.Offset(0, 1).Value = "未找到NCT编号"
        End If
    Next cell
End Sub
  1. 返回Excel,按下Alt + F8运行宏,选择目标列后,宏会自动在右侧列生成提取结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:41:07