数据透视表中的SUM函数不起作用

时间:2014-05-12 16:17:38

标签: mysql sql excel pivot-table ms-query

我在一张工作表上有一个数据透视表,它来自另一张工作表上的Microsoft Query MySQL数据源。

请考虑数据源中的信息:

date  |  order  |  SKU  |  Quantity
-----------------------------------
5/1/14  123456    11111     1
5/1/14  234567    22222     1
5/1/14  456789    33333     2
5/2/14  987654    44444     1
5/2/14  876543    55555     3

当我为此信息制作数据透视表时,我使用行标签的日期。然后,我想计算当天的SKU数量,并添加当天的SKU数量。因此,我将SKU列拖到值部分,并确保选择了COUNT。然后我将Quantity列拖到值部分,当我选择SUM时,我的值最终为零。请参阅下文了解正在发生的事情:

Row Labels  |  Count of SKUs  |  Sum of Quantity
------------------------------------------------
5/1/14              3            0
5/2/14              2            0

“数量总和”列不应为零,对于5/1应为4,对于5/2应为4。我之前从未遇到过这个问题,我假设它与数据源链接到MySQL查询有关。

我试图将数量列中的数字更改为数字格式而没有运气。我完全不知道造成这种情况的原因是什么,我认为这可能是我所忽视的简单事情。但我希望其他人遇到这个问题和/或有解决方案。

请帮忙!

提前致谢!

- 安东尼

解决方案(下方):

MySQL数据库表中Quantity列的数据类型为VARCHAR。我将数据类型更改为INT并刷新了数据源,现在数据透视表工作正常。

3 个答案:

答案 0 :(得分:1)

我猜您的查询会将这些数字作为文本返回。如果在前面有撇号的单元格中输入三个1来表示您希望它们被视为字符串,然后在该范围内使用SUM(),则它将产生零。考虑将您的列转换为数字。

答案 1 :(得分:1)

解决方案是MySQL数据库中的“数量”列是VARCHAR。将列更改为INT并刷新数据源后,数据透视表工作正常。

答案 2 :(得分:0)

简单的解决方法是:

  • 突出显示您的"数量"列和#34;文本到列"在" Data"下,点击"用"和单独的数字#34;完成"。

  • 这将删除您的号码之间不必要的空格。

  • 重新运行数据透视表