批量转换Excel中TXT导入的mm/dd/yy hh/mm/ss格式日期为可识别格式
批量转换文本格式日期为Excel可识别格式的方法
我之前也碰到过类似的情况,Excel对这种文本格式的日期经常犯“脸盲”,手动改50万行根本不现实,给你几个靠谱的批量解决办法,按操作复杂度和效率排序:
方法1:用「分列」功能(最简单高效,适合大多数情况)
这是Excel自带的快速转换工具,处理几十万行完全没问题:
- 选中你要转换的A列所有数据(直接点列标A即可全选)
- 切换到「数据」选项卡,点击「分列」
- 第一步:选择「分隔符号」,点击「下一步」
- 第二步:取消所有勾选的分隔符(我们不需要拆分日期和时间,只是要让Excel重新解析格式),直接点击「下一步」
- 第三步:在「列数据格式」里选择「日期」,右侧下拉菜单选「MDY」(对应你的
mm/dd/yy格式),点击「完成」
完成后整个列的文本日期会自动转换成Excel可识别的日期格式,直接就能用来绘图了。
方法2:用Power Query处理(海量数据首选,不卡顿)
如果数据量特别大(比如50万行),Power Query是更稳定的选择,它专门用来处理批量数据:
- 切换到「数据」选项卡,点击「从文本/CSV」,选中你的txt文件导入
- 在Power Query编辑器里,选中日期列,切换到「转换」选项卡,点击「数据类型」→「日期/时间」
- 如果你的时间部分确实是
hh/mm/ss而非hh:mm:ss,右键列→「更改类型」→「使用格式」,输入MM/dd/yy hh/mm/ss即可 - 点击「关闭并上载」,转换后的数据会导入到新工作表,直接就能用。
方法3:用公式转换(适合临时小范围,50万行建议配合填充)
如果不想用工具,也可以用公式组合实现:
- 在B1单元格输入公式:
=DATEVALUE(LEFT(A1,FIND(" ",A1)-1)) + TIMEVALUE(RIGHT(A1,LEN(A1)-FIND(" ",A1)))
(注:如果时间部分是hh/mm/ss,需先替换斜杠为冒号:=DATEVALUE(LEFT(A1,FIND(" ",A1)-1)) + TIMEVALUE(SUBSTITUTE(RIGHT(A1,LEN(A1)-FIND(" ",A1)),"/",":"))) - 输入完公式后,双击单元格右下角的填充柄,自动填充到50万行
- 选中B列复制,右键A列→「粘贴值」,最后删掉B列即可。
方法4:用VBA宏一键转换(适合有宏基础的用户)
如果经常需要处理这类数据,可以写个宏一键搞定:
- 按
Alt + F11打开VBA编辑器 - 右键你的工作簿→「插入」→「模块」
- 粘贴以下代码:
Sub ConvertTextToDate() Dim lastRow As Long Dim rng As Range ' 获取A列最后一行的行号 lastRow = Cells(Rows.Count, "A").End(xlUp).Row Set rng = Range("A1:A" & lastRow) ' 批量转换格式 rng.NumberFormat = "mm/dd/yy hh:mm:ss" rng.Value = rng.Value End Sub
- 按F5运行宏,整个A列的文本日期会自动转换成可识别的格式。
内容的提问来源于stack exchange,提问作者Ghassen Ben Lazhar




