Excel中CSV导入后日期格式转换问题求助:将文本日期转为欧洲式DD-MM-YYYY格式
解决CSV拆分后日期格式异常的问题(目标:DD-MM-YYYY)
这种日期显示和实际存储不符的情况,在处理拆分后的CSV表格时真的很常见。我来帮你一步步排查解决,最终得到你需要的欧洲日期格式:
先搞清楚核心问题
你看到单元格显示Apr 18但编辑栏是01.04.2018,本质是单元格的显示格式和实际存储的日期值不匹配——单元格里存的是完整日期,只是被设置成只显示月份缩写和日期;而修改格式时出现异常数字,大概率是误选了格式类型,或者拆分过程中部分单元格被转成了文本。
步骤1:确认单元格内容类型
先判断你的「日-月列」是日期值还是文本格式:
- 选中列内任意单元格,看表格工具(比如Excel)「开始」选项卡的「数字格式」下拉框:
- 显示「日期」:说明是日期值,只是显示格式不对;
- 显示「文本」:需要先转成日期值再处理。
情况A:单元格是日期值(编辑栏显示完整日期)
如果是日期值,直接调整显示格式就能解决,避免异常数字:
- 选中整个「日-月列」(如果要合并单独的年份列,也一起选中);
- 右键选中区域,选「设置单元格格式」(或快捷键
Ctrl+1); - 在弹出的对话框里,切换到「数字」→「自定义」;
- 在「类型」输入框里直接敲入格式代码:
dd.mm.yyyy(对应你要的18.04.2018格式); - 点「确定」,单元格就会显示成你要的欧洲格式了。
注意:如果编辑栏显示的是
01.04.2018但你需要18.04.2018,说明拆分时日和月被搞反了!这时候先修正日期值:
假设目标单元格是A1,在空白列输入公式:=DATE(YEAR(A1), DAY(A1), MONTH(A1)),下拉填充后再设置格式为dd.mm.yyyy。
情况B:单元格是文本格式(编辑栏和单元格都显示Apr 18)
如果是文本,需要先结合单独的年份列生成完整日期值:
- 假设「日-月列」是A列,年份列是B列,在空白列(比如C列)输入公式:
这个公式的作用是把=DATE(B1, MONTH(DATEVALUE(A1&" 2000")), DAY(DATEVALUE(A1&" 2000")))Apr 18转换成临时日期(加2000年),提取月和日,再和B列的年份组合成正确的完整日期。 - 按回车后,下拉填充到所有行;
- 选中C列,右键「复制」,再右键选「粘贴为值」,把公式结果转成实际日期值;
- 再按照情况A的步骤设置格式为
dd.mm.yyyy; - 最后可以删除原来的A、B列,保留处理好的C列。
额外小贴士:避免下次再踩坑
下次导入CSV时,在「文本导入向导」第三步,选中日期列,在「列数据格式」里选「日期」,并指定原始日期的格式(比如原始是MM/DD/YYYY就选「MDY」,DD/MM/YYYY就选「DMY」),这样导入后日期就不会错乱了。
内容的提问来源于stack exchange,提问作者L.J.E.




