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

Excel如何从大文本单元格中拆分IT工单的单条工作记录?

方案1:Excel 365/2021 公式方案(无需代码)

利用正则替换加文本拆分实现,操作步骤如下:
假设原始工单内容存放在A1单元格,在空白单元格输入以下公式即可自动横向拆分所有独立工作记录:
=TEXTSPLIT(REGEXREPLACE(A1,"(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})","|$1"),"|",,TRUE)
公式逻辑说明:

  1. 先通过正则匹配所有符合年-月-日 时:分:秒格式的记录起始时间戳,在每个时间戳前插入不会出现在原始内容中的特殊分隔符|
  2. 用|作为分隔符拆分文本,自动忽略开头的空值,每个拆分结果都是完整的单条工作记录,包含时间、人员、记录类型、更新内容。
方案2:全版本Excel兼容VBA方案

如果使用的是没有TEXTSPLIT/REGEXREPLACE函数的旧版Excel,可以用自定义VBA函数实现:

  1. 按Alt+F11打开VBA编辑器,右键点击当前工作簿名称→插入→模块
  2. 在模块编辑窗口粘贴以下代码:
Function SplitWorkNotes(sourceStr As String) As Variant
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    regex.Global = True
    ' 匹配完整单条工作记录规则:以时间戳开头,到下一个时间戳之前结束
    regex.Pattern = "\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}[^\d]*?(?=\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}|$)"
    Dim matches As Object
    Set matches = regex.Execute(sourceStr)
    Dim resArr() As String
    ReDim resArr(1 To matches.Count)
    For i = 0 To matches.Count - 1
        resArr(i + 1) = Trim(matches(i).Value)
    Next
    SplitWorkNotes = resArr
End Function
  1. 保存文件为启用宏的工作簿(*.xlsm)格式
  2. 使用方法:选中需要存放拆分结果的横向空白单元格区域,输入公式=SplitWorkNotes(A1),旧版Excel按Ctrl+Shift+Enter完成数组公式确认,Excel 365/2021直接回车即可。
后续统计操作说明
  • 计算间隔时长:每条记录前19位为标准时间格式,用DATEVALUE(LEFT(单元格,10)) + TIMEVALUE(MID(单元格,12,8))转换为Excel可计算的时间数值,两条记录的时间数值直接相减即可得到间隔时长,可自定义单元格格式显示为X天X小时格式
  • 提取更新人员:时间戳后到左方括号[之间的内容为人员姓名,用TRIM(MID(单元格,20,FIND("[",单元格)-20))即可提取,配合COUNTIF就能统计单人更新次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:09:03