如何将Excel中特定文本格式日期时间转换为MS日期时间类型?
Excel文本格式日期时间转标准日期时间解法
原始文本格式示例:"Wed Nov 30 2022 09:30:00 GMT+0530 (India Standard Time)"
一、解决DATEVALUE值错误问题
你用=LEFT(B1,11)提取的日期文本末尾带有多余空格,导致DATEVALUE无法识别。只需用TRIM()去除空格即可:
=DATEVALUE(TRIM(LEFT(B1,11)))
之后将日期与时间合并,得到完整日期时间:
=DATEVALUE(TRIM(LEFT(B1,11)))+TIMEVALUE(RIGHT(B1,8))
二、一次性整列转换的高效方法
方法1:单公式批量处理
无需拆分文本,在空白列首行输入以下公式,下拉填充整列即可:
=DATEVALUE(MID(A1,5,11))+TIMEVALUE(MID(A1,17,8))
输入完成后,选中该列,设置单元格格式为「日期时间」类型(如yyyy-mm-dd hh:mm:ss)。
公式说明:
MID(A1,5,11)提取Nov 30 2022部分,MID(A1,17,8)提取09:30:00部分,日期与时间相加得到Excel可识别的日期时间序列值。
方法2:文本分列法
- 选中需要转换的整列
- 点击「数据」选项卡→「分列」
- 步骤1:选择「分隔符号」,点击下一步
- 步骤2:勾选「空格」作为分隔符,点击下一步
- 步骤3:分别选中包含日期的列(第2-4列),设置「列数据格式」为「日期(MDY)」;选中包含时间的列(第5列),设置为「时间」
- 完成分列后,在空白列用公式合并日期列与时间列(如
=D1+E1),再设置日期时间格式即可
方法3:VBA宏批量转换(适合大数量数据)
按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:
Sub ConvertDateTime() Dim rng As Range Dim cell As Range Set rng = Selection For Each cell In rng If cell.Value <> "" Then cell.Value = DateValue(Mid(cell.Value, 5, 11)) + TimeValue(Mid(cell.Value, 17, 8)) cell.NumberFormat = "yyyy-mm-dd hh:mm:ss" End If Next cell End Sub
返回Excel,选中需要转换的列,按Alt+F8运行该宏即可自动完成转换。
内容的提问来源于stack exchange,提问作者user2626214
相关产品推荐
相关产品推荐

