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

如何从Excel字符串列中提取计量单位及对应关联数值

Excel 批量提取字符串中前置数值+计量单位方案

需求背景

现有Excel表内超1000行字符串类型数据,需要从每行中提取关联的前置数值和对应计量单位,数值始终位于计量单位之前,预期输出示例为25 kg、1000L。
参考待处理样例字符串:ZALTATA MA177-445 IBCC 1000L,预期提取结果为1000L。

实现方案

方案1:Excel 365 / WPS 最新版(公式直接实现)

直接调用内置正则提取函数即可,公式如下:

=REGEXEXTRACT(A1,"\d+\s?([kKmMgG][lLgG]|[lLmMcC][mM]?)")
  • 公式中A1替换为待处理字符串所在的单元格
  • \d+匹配连续的前置数值,\s?兼容数值和单位之间可选的空格
  • 括号内为预设的常用计量单位匹配规则(包含kg/g/L/ml/m/cm等),如果涉及业务专属单位,直接修改该部分规则即可
  • 公式输入完成后下拉填充,1000行数据可在数秒内完成全部提取

方案2:旧版Excel(无内置正则函数,VBA自定义函数实现)

  1. 按下Alt+F11打开VBA编辑器,依次点击「插入」-「模块」
  2. 在模块编辑页粘贴如下代码:
Function ExtractNumAndUnit(rng As Range) As String
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    ' 正则规则可根据实际单位需求调整
    regEx.Pattern = "\d+\s?([kKmMgG][lLgG]|[lLmMcC][mM]?)"
    regEx.Global = False
    If regEx.Test(rng.Value) Then
        ExtractNumAndUnit = regEx.Execute(rng.Value)(0)
    Else
        ExtractNumAndUnit = "无匹配结果"
    End If
End Function
  1. 将文件保存为「启用宏的工作簿(.xlsm)」格式,回到工作表后在空白单元格输入=ExtractNumAndUnit(A1)即可调用该函数,下拉完成批量提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:36:03