如何修改Power Query小数设置解决CSV数值异常转换问题?
解决Power Query导入CSV时小数被错误转换的问题
问题原因
这种情况通常是Power Query的区域设置与CSV文件的小数/千位分隔符规则不匹配,导致自动检测时误将小数点识别为千位分隔符(比如部分区域用点作千位分隔符、逗号作小数分隔符),从而把1.0解析成10。
解决方法
方法1:导入阶段手动控制格式检测
- 打开Power Query,选择从文本/CSV导入目标文件
- 在预览界面点击编辑进入编辑器
- 在左侧查询设置的数据源设置中:
- 确认分隔符与CSV实际使用的一致(比如逗号)
- 关闭自动数据类型检测,先将所有列导入为文本类型
- 导入完成后,选中出现问题的列,手动设置数据类型为小数
- 若仍有问题,进入Power Query的文件选项 > 区域设置,确保小数分隔符设为点(.),千位分隔符设为逗号(,)(与CSV格式匹配)
方法2:用高级编辑器自定义导入逻辑
在Power Query编辑器中点击高级编辑器,替换为以下代码(按需修改路径和列名):
let Source = Csv.Document(File.Contents("你的CSV文件完整路径"),[Delimiter=",", Encoding=1252, QuoteStyle=QuoteStyle.None]), #"提升的标题" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]), #"指定小数类型" = Table.TransformColumnTypes(#"提升的标题",{{"目标列名", type number}}) in #"指定小数类型"
- 替换
你的CSV文件完整路径为实际文件路径 - 替换
目标列名为出现问题的列的标题 - 此方法强制跳过自动检测,直接按指定格式解析数值
方法3:验证CSV文件本身格式
用记事本打开CSV文件,确认目标列的数值确实是1.0、2.0,没有隐藏字符或格式错误;若CSV由其他软件导出,重新导出时明确指定小数分隔符为点(.),避免导出时自动转换格式
内容的提问来源于stack exchange,提问作者Deryansyah
相关产品推荐
相关产品推荐

