如何将CSV中MM/DD/YYYY格式日期转换为DD/MM/YYYY格式
CSV内MM/DD/YYYY格式日期无法通过自定义单元格格式修改的解决方案
问题根因
CSV是纯文本存储格式,直接双击打开时,Excel会按照当前系统默认的区域日期规则自动解析内容:如果你的系统默认日期格式是日/月/年顺序,那么源文件里月/日/年的文本内容会被判定为普通文本,而非可格式化的日期序列号。这种情况下你修改自定义单元格格式,只是改了文本的显示规则,根本不会触发日期格式转换,自然没有效果。
可直接复用的解决方法
方法1:导入时手动指定日期解析规则(零错配,推荐优先用)
- 不要直接双击打开CSV文件,先新建一个空白Excel工作簿
- 顶部切换到「数据」选项卡,点击「从文本/CSV」,选中目标CSV文件
- 导入配置页先选对文件编码(中文环境优先试
936(GB2312),出现乱码就换65001(UTF-8)) - 选中日期所在列,把列数据格式设置为「日期」,后续的日期顺序下拉选择
MDY(对应源文件的月/日/年存储逻辑) - 点击「加载」完成导入,此时所有日期都会被识别为标准Excel日期值,你再设置
d/m/yyyy或其他任意日期格式都能正常显示。
方法2:公式批量转换已打开的文本日期
如果你已经打开了CSV不想重新导入,直接在空白列写公式批量转换即可:
- 假设日期内容存放在A列,从A2单元格开始,在空白列对应行输入公式:
=DATE(RIGHT(A2,4),LEFT(A2,FIND("/",A2)-1),MID(A2,FIND("/",A2)+1,FIND("/",A2,FIND("/",A2)+1)-FIND("/",A2)-1)) - 下拉填充整列,就能把所有MM/DD/YYYY格式的文本转成标准日期值,后续直接设置单元格格式即可。
方法3:临时调整系统区域匹配源日期格式
- 打开Windows设置→时间和语言→语言和区域,把区域格式临时切换为「英语(美国)」
- 此时双击打开CSV,Excel会自动按照MM/DD/YYYY规则识别所有日期,你可以直接把单元格格式改成需要的
d/m/yyyy,调整完另存为.xlsx格式后,再把系统区域切回原设置即可。
注意:CSV格式本身不支持单元格格式、公式等Excel特性,不要直接在打开的CSV上修改保存,否则所有格式设置都会丢失,调整完成后请另存为xlsx格式保存结果。
内容的提问来源于stack exchange,提问作者Anchor Man
相关产品推荐
相关产品推荐

