You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel中CSV导入后日期格式转换问题求助:将文本日期转为欧洲式DD-MM-YYYY格式

解决CSV拆分后日期格式异常的问题(目标:DD-MM-YYYY)

这种日期显示和实际存储不符的情况,在处理拆分后的CSV表格时真的很常见。我来帮你一步步排查解决,最终得到你需要的欧洲日期格式:

先搞清楚核心问题

你看到单元格显示Apr 18但编辑栏是01.04.2018,本质是单元格的显示格式和实际存储的日期值不匹配——单元格里存的是完整日期,只是被设置成只显示月份缩写和日期;而修改格式时出现异常数字,大概率是误选了格式类型,或者拆分过程中部分单元格被转成了文本。


步骤1:确认单元格内容类型

先判断你的「日-月列」是日期值还是文本格式

  • 选中列内任意单元格,看表格工具(比如Excel)「开始」选项卡的「数字格式」下拉框:
    • 显示「日期」:说明是日期值,只是显示格式不对;
    • 显示「文本」:需要先转成日期值再处理。

情况A:单元格是日期值(编辑栏显示完整日期)

如果是日期值,直接调整显示格式就能解决,避免异常数字:

  1. 选中整个「日-月列」(如果要合并单独的年份列,也一起选中);
  2. 右键选中区域,选「设置单元格格式」(或快捷键Ctrl+1);
  3. 在弹出的对话框里,切换到「数字」→「自定义」;
  4. 在「类型」输入框里直接敲入格式代码:dd.mm.yyyy(对应你要的18.04.2018格式);
  5. 点「确定」,单元格就会显示成你要的欧洲格式了。

注意:如果编辑栏显示的是01.04.2018但你需要18.04.2018,说明拆分时日和月被搞反了!这时候先修正日期值:
假设目标单元格是A1,在空白列输入公式:=DATE(YEAR(A1), DAY(A1), MONTH(A1)),下拉填充后再设置格式为dd.mm.yyyy


情况B:单元格是文本格式(编辑栏和单元格都显示Apr 18

如果是文本,需要先结合单独的年份列生成完整日期值:

  1. 假设「日-月列」是A列,年份列是B列,在空白列(比如C列)输入公式:
    =DATE(B1, MONTH(DATEVALUE(A1&" 2000")), DAY(DATEVALUE(A1&" 2000")))
    
    这个公式的作用是把Apr 18转换成临时日期(加2000年),提取月和日,再和B列的年份组合成正确的完整日期。
  2. 按回车后,下拉填充到所有行;
  3. 选中C列,右键「复制」,再右键选「粘贴为值」,把公式结果转成实际日期值;
  4. 再按照情况A的步骤设置格式为dd.mm.yyyy
  5. 最后可以删除原来的A、B列,保留处理好的C列。

额外小贴士:避免下次再踩坑

下次导入CSV时,在「文本导入向导」第三步,选中日期列,在「列数据格式」里选「日期」,并指定原始日期的格式(比如原始是MM/DD/YYYY就选「MDY」,DD/MM/YYYY就选「DMY」),这样导入后日期就不会错乱了。

内容的提问来源于stack exchange,提问作者L.J.E.

火山引擎 最新活动