powerquery:导入表格时向数字添加额外数字

问题描述 投票:0回答:1

很高兴时隔 10 多年再次在这里提出问题(上一个问题是关于 BASH 脚本的,现在我在公司,你猜怎么着......这是关于 excel 的;))

这是我的问题/问题: 我正在使用 powerquery 导入数据以进行进一步分析

我发现导入的值包含原始表中不存在的额外数字。

我已经用谷歌搜索了这个问题,但我无法找到解释或解决方案(类似的问题是这个这个,已有一年多了,但没有来自微软的反馈)

(屏幕截图中的列格式为文本,但即使格式为数字,问题仍然存在)

我现在使用的解决方法,但我对此不满意:

  1. 我“增加了小数点”以确保捕获所有数字(在我的源中,条目不具有所有相同的有效数字),
  2. 另存为 csv
  3. 将受影响的列导入为数字
  4. 将列转换为文本(用于将来的文本匹配

我对 Excel 这种不受欢迎且不可预测的行为感到非常恼火。 我看到数据完整性存在严重问题,如果我们不能依靠 powerquery/powerbi 平台来维护准确的查询,我想知道为什么要使用它

添加另一个屏幕截图以澄清将源格式更改为文本并不能解决问题

另一个屏幕截图添加了以下 @David Bacci 评论:

我认为我错误地认为我的数据在源中以文本形式存储,您能确认吗?

powerbi powerquery m
1个回答
2
投票

如果您以文本形式导出和导入,则不会发生这种情况。如果转换为数字,则会失去精度。来自文档(我的粗体):

表示64位(八字节)浮点数。这是最 普通数字类型,对应你通常想到的数字 他们。虽然设计用于处理带有小数值的数字,但它 也处理整数。 Decimal Number 类型可以处理 从 –1.79E +308 到 –2.23E –308、0 和正值的负值 值从 2.23E –308 到 1.79E + 308。例如,像这样的数字 34、34.01 和 34.000367063 是有效的十进制数。 最大的 可以用 Decimal Number 类型表示的精度为 15 数字长。 小数点分隔符可以出现在数字中的任何位置。 十进制数字类型对应于 Excel 存储其数字的方式。 注意二进制浮点数并不能代表所有数字 在其支持的范围内,准确度为 100%。因此,微小的差异 表示某些十进制数字时可能会出现精度问题。

顺便说一句,您可能应该接受 10 年前的问题中的一些好的答案。

© www.soinside.com 2019 - 2024. All rights reserved.