如何在Excel中正确读取含有点分隔符小数的CSV文件?
解决Excel导入CSV时小数点未被正确识别的问题
我之前也碰到过一模一样的情况!直接用「从文本/CSV」加载很容易因为自动识别逻辑出问题,尤其是带多位小数的数值。试试下面这些方法,亲测有效:
方法一:用Power Query自定义数据格式导入
这是最稳妥的方式,能精准控制每列的数据类型:
- 点击顶部「数据」选项卡,选择「从文本/CSV」
- 选中你的目标CSV文件,不要直接点「加载」,点击右下角的「转换数据」(旧版Excel可能显示为「编辑」)
- 在弹出的Power Query编辑器里:
- 按住
Ctrl键选中所有包含小数的列(比如Begin pre-annotated、Difference End这些) - 点击顶部「转换」选项卡,选择「数据类型」→「小数」
- 如果还是有异常,可先把这些列设置为「文本」,再转成「小数」
- 按住
- 确认所有小数列显示正常后,点击「关闭并上载」,导入的数值就能正确识别小数点了
方法二:启用旧版文本导入向导手动配置
如果你的Excel版本支持旧版向导,也可以用这个方式:
- 按快捷键
Alt + A + F打开「从文本」向导(如果找不到,可去「文件」→「选项」→「自定义功能区」,在「所有命令」里找到「自文本」添加到功能区) - 第一步选择「分隔符号」,点击「下一步」
- 第二步勾选「逗号」作为分隔符,确认「文本识别符」是双引号
",点击「下一步」 - 第三步选中所有小数列,在「列数据格式」里选择「常规」或「数值」,确认小数点设置为
.,最后点击「完成」
为什么修改分隔符没用?
其实直接改系统或Excel的小数分隔符有时候不生效,核心原因是Excel自动识别优先级的问题:当你直接点「加载」时,Excel会根据文件内容自动猜测格式,很容易把带.的数值当成文本,甚至误判成分隔符导致列错位。通过手动配置导入规则,就能绕开这个自动识别的坑。
附你的CSV文件内容供参考:
Label pre-annotated,Label self-annotated,Begin pre-annotated,End pre-annotated,Begin self-annotated,End self-annotated,Difference Begin,Difference End P,P,0,3.36998958333333,0,3.36998958333333,0,0.0 P,P,5.50998958333333,5.85998958333333,5.50998958333333,5.85998958333333,0.0,0.0 P,P,6.37998958333333,6.67998958333333,6.37998958333333,6.67998958333333,0.0,0.0 P,P,6.80998958333333,7.80998958333333,6.80998958333333,7.80998958333333,0.0,0.0 P,COND1,10.3299895833333,10.36996875,10.3299895833333,10.517009268921914,0.0,0.14704051892191394
内容的提问来源于stack exchange,提问作者Sven




