0

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

SELECT * FROM UnitDiscountView

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

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

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

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

4

2 回答 2

1

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

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

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

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

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

于 2009-11-16T09:56:06.757 回答
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
于 2009-11-16T09:57:56.850 回答