Excel Power Query:强制将小数数据以文本格式导入并保留原值
解决Power Query中文本格式小数导入后精度异常的问题
问题原因
这是浮点数二进制存储的精度特性导致的:部分十进制小数(如1.1)无法被二进制精确表示,Power Query导入时若隐式将文本解析为浮点数,再转回文本就会出现冗余小数位;而2.1这类小数恰好能被二进制近似表示,所以显示正常。
解决方案
1. 导入时强制保留原始文本格式
- 选择「从表格/范围」导入数据,在弹出的对话框中点击「转换数据」进入Power Query编辑器
- 找到左侧「查询设置」中的「源」步骤,点击步骤右侧的⚙️图标
- 在高级选项里,将「数据类型检测」设置为「无」,确认后即可直接保留Excel中原始的文本格式,避免隐式解析为浮点数
2. 修复已导入的异常文本
如果已经出现精度异常的文本,可以通过数值转文本的方式修正:
- 选中目标列,点击「添加列」→「自定义列」
- 输入自定义公式(替换
[目标列名]为实际列名,格式字符串按需调整,比如保留1位小数用"0.0",保留2位用"0.00"):
Number.ToText(Number.From([目标列名]), "0.0")
- 删除原列,将新列重命名为原列名,此时列类型仍为文本,且显示正常
3. 合并查询的替代处理
若仅为了合并查询需求,可先将参与合并的列转为小数类型完成匹配,合并后再转回文本类型,既保证匹配准确性,又能满足后续文本格式的要求
内容的提问来源于stack exchange,提问作者AliZ.ece
相关产品推荐
相关产品推荐

