我有一个带有大量切片器的基本数据集,大致如下所示:
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而不是乘以总数的列总和?
答案 0 :(得分:2)
以下是我认为您在Power Pivot模型中的含义:
您有一个Spread的计算度量,我将其标记为SpreadCalc1
。这个问题是它在进行乘法之前进行聚合。您需要在逐行的基础上执行此操作,然后进行聚合。因此,您需要创建计算列,然后对该列求和,而不是计算出的度量。
我标记为SpreadCalc
的列的公式为=[Hours] * [SpreadPerHr]
。
我称之为Spread
的计算度量仅为Sum([SpreadCalc])
。你可以看到总数是125,而不是391.
答案 1 :(得分:1)
我知道现在这可能有点多余,但我建议采用略有不同的方法。
在“小”表中添加计算列很好,但它可能会导致大型数据库出现严重的性能问题。
因此,为了解决您的问题,我认为“正确”的方法是使用 SUMX 功能。
它专门为每一行计算表达式,这正是您所需要的。就性能而言,它是聪明的(无需添加计算列或执行任何源数据操作)。
如果您使用此公式(更正表/度量的名称),您应该得到所需的结果:
SUMX(YourTable, [Sum Hour] * [Sum SpreadPerHr])