我有一个Excel电子表格,上面有一个数据透视表。数据本身非常简单,单位数和折扣(从0到100的百分比),在顶部和客户的左侧旋转日期。这些数字直接来自SQL视图,因此数据透视表源只是:
SELECT * FROM UnitDiscountView
所有看起来都没问题,直到我试图将一个计算的TotalCost字段(每个单位将花费200英镑)添加到数据透视表:
= (200 *NrUnits ) * ((100-Discount)/100)
底部的总数是负数,远远超过我预期的数字。如果我选择所有单元格,那么底部状态栏中出现的总和就是我所期望的,但是底部的总计字段大一百倍,而引导则为负。
我很难过。我从星期五开始搜索没有找到任何能帮我解决这个问题的东西。任何关于从哪里开始寻找解决方案的指示都将非常感激。我应该提到SQL是我的专长,而不是Excel。我上个星期之前没有使用Excel的Pivot表,所以我可能遗漏了一些非常明显的东西。
答案 0 :(得分:1)
计算字段将与总计一起使用:
200 *(NrUnits之和)*((100 - [折扣总和])/ 100)
因此,对于您的总行数,如果折扣总和大于100(将数据透视表中的所有折扣总和相加),公式的部分(折扣总和)将返回负数,因此负值。
我通常做的是在查询返回的值右侧的表中添加另一列。我将在那里添加我的公式,然后在调整大小的表上执行数据透视表。
如果已将返回的SQL查询格式化为表(或Excel 2003中的列表),则数据透视表源范围甚至应自行调整大小。
答案 1 :(得分:0)
我找到了答案。
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