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

如何使用Excel公式或宏从单元格多行文本中提取倒数第二行日期时间

需求说明

从包含多行工单记录的Excel单元格中,提取倒数第二行的日期时间戳,适用于人员、行数不固定的场景。

方案1:Excel 365/2021 公式方案

适用带有TEXTSPLIT、LET函数的高版本Excel,无需启用宏。
假设待处理的内容存放在A1单元格,直接在目标单元格输入以下公式:

=LET(lines,FILTER(TEXTSPLIT(A1,CHAR(10)),TEXTSPLIT(A1,CHAR(10))<>""),dt_txt=LEFT(INDEX(lines,COUNTA(lines)-1),19),VALUE(dt_txt))

公式逻辑说明:

  • CHAR(10)对应Excel单元格内的换行符,TEXTSPLIT将单元格内容按行拆分
  • FILTER过滤拆分后产生的空行,避免空行影响计数
  • COUNTA(lines)统计有效总行数,减1后得到倒数第二行的索引,INDEX取出该行内容
  • LEFT提取该行前19位的标准时间字符串,VALUE将其转为Excel可识别的时间数值,你只需将目标单元格格式设置为「yyyy-mm-dd hh:mm:ss」即可正常显示时间。
方案2:全版本兼容VBA自定义函数方案

适用于没有高版本函数的旧版Excel,操作步骤如下:

  1. 按Alt+F11打开VBA编辑器,右键点击当前工作簿名称,选择「插入」-「模块」
  2. 将以下代码粘贴到模块编辑窗口:
Function 提取倒数第二行时间(rng As Range) As Date
    Dim 所有行 As Variant, 有效行 As New Collection
    Dim i As Long, 目标行内容 As String
    ' 按换行符拆分单元格内容
    所有行 = Split(rng.Value, Chr(10))
    ' 过滤空行存入有效行集合
    For i = LBound(所有行) To UBound(所有行)
        If Trim(所有行(i)) <> "" Then
            有效行.Add Trim(所有行(i))
        End If
    Next
    ' 取倒数第二行前19位转换为时间格式
    目标行内容 = 有效行(有效行.Count - 1)
    提取倒数第二行时间 = CDate(Left(目标行内容, 19))
End Function
  1. 保存文件为「Excel 启用宏的工作簿(*.xlsm)」格式,回到Excel界面后,在目标单元格输入=提取倒数第二行时间(A1)即可得到结果,同样需要将单元格格式设置为日期时间类型。

注意:两种方案均默认所有带时间戳的行格式与你提供的示例一致,时间固定占行首19位,格式为YYYY-MM-DD HH:MM:SS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:06:02