PowerPivot中计算的字段总数不正确

时间:2014-01-07 16:18:55

标签: excel powerpivot

我有一个带有大量切片器的基本数据集,大致如下所示:

       Hours    SpreadPerHr      Spread
       5.00        5.00          25.00
       10.00       2.00          20.00
       8.00       10.00          80.00

Spread是Spread = Hours * SpreadPerHour的计算值。问题是,这些列的总数也遵循这个公式,所以它看起来像这样:

       Hours    SpreadPerHr      Spread
       5.00        5.00          25.00
       10.00       2.00          20.00
       8.00       10.00          80.00
Total: 23.00      17.00         391.00

虽然小时总计很好,但SpreadPerHour是动态的,因此Spread也是如此。说Total Spread = Total Hours * Total SpreadPerHour是不正确的。总计应该是:

Total: 23.00      17.00         125.00 

有没有办法让我可以按小时计算excel离开总数,但是为Spread而不是乘以总数的列总和?

2 个答案:

答案 0 :(得分:2)

以下是我认为您在Power Pivot模型中的含义: enter image description here

您有一个Spread的计算度量,我将其标记为SpreadCalc1。这个问题是它在进行乘法之前进行聚合。您需要在逐行的基础上执行此操作,然后进行聚合。因此,您需要创建计算列,然后对该列求和,而不是计算出的度量。

enter image description here

我标记为SpreadCalc的公式为=[Hours] * [SpreadPerHr]。 我称之为Spread的计算度量仅为Sum([SpreadCalc])。你可以看到总数是125,而不是391.

答案 1 :(得分:1)

我知道现在这可能有点多余,但我建议采用略有不同的方法。

在“小”表中添加计算列很好,但它可能会导致大型数据库出现严重的性能问题。

因此,为了解决您的问题,我认为“正确”的方法是使用 SUMX 功能。

它专门为每一行计算表达式,这正是您所需要的。就性能而言,它是聪明的(无需添加计算列或执行任何源数据操作)。

如果您使用此公式(更正表/度量的名称),您应该得到所需的结果:

SUMX(YourTable, [Sum Hour] * [Sum SpreadPerHr])

enter image description here