为什么Excel 2010数据透视表会出现重复行?

3
我正在处理一张包含80万行数据的大表格,我正在使用Excel 2010中的透视表来对这些数据进行汇总。
我想根据物品的重量向上取整到最近的0.1磅来进行“旋转”,方法是添加一个包含公式=ROUNDUP(,1)的列。
但不知何故,透视表会显示重复的行标签。
Weight 
Band        Pkg #   Processed
0.3         10,812  4,211
0.3         9,878   4,464    <<< Duplicate row label "0.3"
0.4         23,989  12,490
0.5         35,928  19,036
0.6         22,921  18,500
0.7         17,348  13,431
0.8         4,291   2,325
0.8         10,280  8,923    <<< Duplicate row label "0.8"
0.9         21,084  7,766
1           24,574  19,438
1.1         8,943   7,201
1.2         6,280   5,671
1.2         2,697   1,287    <<< Duplicate row label "1.2"
1.3         9,194   7,115
1.4         5,678   4,902
1.4         2,234   1,225    <<< Duplicate row label "1.4"
1.5         7,631   5,926

查看原始数据列的自动筛选下拉列表时,不显示重复值,但透视表的筛选器却显示。

考虑到 ROUND() 公式可能是问题所在,我用数值替换了公式以简化处理 - 但重复项仍然存在。

您有什么想法,为什么会出现这种情况?


需要查看一些原始数据来尝试重现。但是,每当您使用数据透视表进行操作时,请在新的工作表/选项卡中重新构建它。我发现某种程度的缓存似乎会发生。因此,如果您最初没有进行四舍五入,则缓存值可能会存储未舍入的值。如果您随后添加了舍入,则可能仍在以某种方式使用该缓存值。如果您真的在数据透视表中有一个列进行了舍入并在此之后创建了透视表,我认为您将不会获得重复项。如果这解决了问题,我们很想知道。 - xQbert
我尝试了你的想法,但没有任何改变。只是为了好玩,我在列的内容后缀了一个字母字符串(例如,“0.5”变成了“0.5 LB”),你知道重复项消失了!我认为Excel可能存在使用数字作为行标签时的小错误 - 即使是文本也是如此。也许是存储/舍入问题? - user2653485
为了更清楚地理解您的问题,当您说“重复行标签”时 -> 您已将字段“重量带”添加到数据透视表的行部分,并且它显示了多次?如果是文本,请检查该列中的值是否有空格?如果不是文本,请检查它们是否真正相同,而不仅仅是显示为相同的数字(例如,1.47和1.48都显示为1.5)? - Cor_Blimey
是的,你理解了问题。而且,它们确实是相同的数字。重量带编号是通过将每个零件的重量四舍五入(向上)到下一个十分之一磅来创建的,因此根据定义,每个带应该在小数点右侧1位数字。也许Excel“隐藏”了我看不到的一些精度,但更奇怪的是,主数据页面上的自动筛选器没有显示原始数据中的任何重复项。透视摘要上的筛选器显示了重复项--尽管它按定义是原始数据的摘要。通过添加字符后缀来解决是一个解决方法。 - user2653485
所以我最终开始研究这个问题。根据发布的数据,我无法复制此问题,这表明它与小数位有关,这很奇怪,因为ROUND应该已经解决了这个问题。将其包装在TRUNC()函数中应该可以测试。 - Cor_Blimey
2个回答

2

给数字标签添加字母数字后缀似乎解决了这个问题。例如,行标签不再像下面这样:

My Column
"0.1"
"0.2"
"0.3"
"0.4"
...

他们现在看起来像这样:
My Column
"0.1 lb"
"0.2 lb"
"0.3 lb"
"0.4 lb"
...

现在透视表中的重复标签已经消失了。

可能Excel把这些标签解释成了数字并且存在舍入问题?


0

解决此问题的一种方法是使用数据选项卡中的“文本分列”功能,强制Excel将所有单元格值更改为文本(或任何您想要的形式)。这意味着您不必添加LB后缀。

但这不应该是必要的。这似乎是Excel的一个错误!我也遇到了同样的问题,并意识到即使尝试以任何其他方式将数据格式更改为文本也会失败。不知道为什么。唯一有效的方法是使用“文本分列”功能来尝试将其更改为文本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接