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

如何快速从Excel单元格提取ELR与里程数据批量填充?

批量提取ELR代码与里程的解决方案

方法1:Excel内置函数(无编程门槛,快速落地)

假设Asset Description在A列,目标ELR列在B,Mileage列在C:

提取3位ELR代码

  • 通用适配公式(不管ELR在单元格哪个位置,只要是3位大写字母):
    =MID(A2,MIN(FIND({"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"},A2&"ABCDEFGHIJKLMNOPQRSTUVWXYZ")),3)
    
    逻辑:定位单元格内第一个大写字母的位置,截取后续3位,精准匹配ELR格式。
  • 示例格式专属简化公式(内容带: 分隔符):
    =TEXTBEFORE(TEXTAFTER(A2,": ")," ")
    
    逻辑:先抓: 后的内容,再取第一个空格前的字符,直接拿到ELR。

提取里程数值

  • Excel 365/2021版本(支持正则函数,最省心):
    =NUMBERVALUE(REGEXEXTRACT(A2,"\d+\.\d+"))
    
    逻辑:用正则匹配所有带小数点的数字,自动提取并转为数值格式。
  • 旧版Excel兼容公式:
    =NUMBERVALUE(TEXTBEFORE(TEXTAFTER(A2," ")," -"))
    
    逻辑:抓第一个空格后的内容,再取 -前的字符,转成数值。

操作: 在B2、C2输入公式后,选中两格,双击单元格右下角的填充柄,一键填充1万行。

方法2:VBA宏(大数据量效率最优)

如果1万行用函数填充卡顿,直接用宏批量处理:

  1. 按Alt+F11打开VBA编辑器
  2. 右键当前工作簿 → 插入 → 模块
  3. 粘贴代码:
Sub ExtractELRAndMileage()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim cell As Range
    Dim regEx As Object
    Dim matches As Object
    
    Set ws = ActiveSheet ' 可改为具体表名,如Sheets("你的工作表名")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Set regEx = CreateObject("VBScript.RegExp")
    
    ' 正则规则:匹配3位大写字母(ELR) + 空格 + 带小数点的数字(里程)
    regEx.Pattern = "([A-Z]{3})\s+(\d+\.\d+)"
    regEx.Global = False
    
    For Each cell In ws.Range("A2:A" & lastRow)
        If regEx.Test(cell.Value) Then
            Set matches = regEx.Execute(cell.Value)
            cell.Offset(0, 1).Value = matches(0).SubMatches(0) ' 写入B列(ELR)
            cell.Offset(0, 2).Value = CDbl(matches(0).SubMatches(1)) ' 写入C列(Mileage)
        End If
    Next cell
    
    Set regEx = Nothing
    Set ws = Nothing
    MsgBox "提取完成!"
End Sub
  1. 按F5运行,自动完成所有行的提取填充。

提示: 如果你的内容格式有特殊变化,调整正则的Pattern参数即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:07:34