【问题标题】:Excel pivot table calculated field total returns unexpected valueExcel 数据透视表计算字段总计返回意外值
【发布时间】:2010-12-16 23:29:21
【问题描述】:

我有一个 Excel 电子表格,上面有一个数据透视表。数据本身非常简单,数量和折扣(从 0 到 100 的百分比),以日期为中心,位于顶部,客户位于左侧。这些数字直接来自 SQL 视图,因此数据透视表源只是:

SELECT * FROM UnitDiscountView

在我尝试将 TotalCost 的计算字段(每个单元将花费 200 英镑)添加到数据透视表之前,一切看起来都很好:

= (200 *NrUnits ) * ((100-Discount)/100)

底部的总数是负数,比我预期的数字要多得多。如果我选择所有单元格,那么底部状态栏中显示的总和就是我所期望的,但底部的 Total 字段超过一百倍,并且启动为负数。

我被难住了。自周五以来我一直在搜索,但没有找到任何可以帮助我解决这个问题的东西。任何关于从哪里开始寻找解决方案的指针将不胜感激。我应该提一下,SQL 是我的强项,而不是 Excel。上周之前我没有使用过 Excel 的数据透视表,所以我可能遗漏了一些非常明显的东西。

【问题讨论】:

    标签: excel pivot-table summary


    【解决方案1】:

    我找到了答案。

    Excel 有效地为总数做到了这一点:

    = (200 * sum(NrUnits)) * ((100-sum(Discount))/100)
    

    这甚至与我想要的不太接近:

    = sum((200-NrUnits) * ((100-Discount) * 100)))
    

    我通过将视图中的 SQL 更改为:

    SELECT *, NrUnits*((100-Discount)*100) AS EffectiveUnits
    FROM UnitDiscountView
    

    计算字段为:

    = EffectiveUnits * 200
    

    【讨论】:

      【解决方案2】:

      计算字段将与总计一起使用:

      200 * (NrUnits 总和) * ((100 - [折扣总和]) / 100 )

      因此,对于您的总行,如果折扣总和大于 100(将数据透视表上的所有折扣总和相加),您的公式部分(100-折扣总和)将返回一个负数,因此是负值。

      我通常做的是将另一列添加到从查询返回的值右侧的表中。我将在那里添加我的公式,然后在调整大小的表上做数据透视表。

      如果您已将返回的 SQL 查询格式化为表格(或 Excel 2003 中的列表),则数据透视表源范围甚至应该自行调整大小。

      【讨论】:

      • 谢谢 Dendatii。非常感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多