数据透视表组列的平均值

时间:2015-11-09 23:05:17

标签: excel date powerpivot dax

我想知道是否可以创建这样的表:

Picture of table for equity ratio

我已经计算了"Calculated field 1"栏中显示的两家公司的股权比率。现在,我想为每个公司创建此列的平均值和最小值!如表中所示(红色数字)。

为了澄清,列C,行C5至C26显示公司1的平均值。 第C28至C49行显示公司2的平均值。

任何想法如何进行?

1 个答案:

答案 0 :(得分:3)

Average:=
AVERAGEX(
    ALL(Datasrc[Year])
    ,[Calculated field 1] // Seriously? Come up with a better name.
)

Minimum:=
MINX(
    ALL(Datasrc[Year])
    ,[Calculated field 1]
)

* X()函数将表表达式作为其第一个参数。它们逐行遍历此表,在每行的第二个参数中计算表达式,并累积它。 AVERAGEX()累积平均值MINX(),最小值。

ALL()返回剥离了上下文的表,列或列集的唯一元素。因为我们只在[Year]列上调用ALL(),所以这是我们删除其上下文的唯一列。 [股票行情]的背景仍然存在。

这两项措施在总体水平上是不合理的。

忍者编辑:可能有更好的方法来编写这些措施,但由于没有深入了解[计算字段1]正在做什么,我无法对此提出建议。 * X()函数强制在公式引擎中进行单线程评估。这不是一件坏事,但是你会对只能使用存储引擎的查询产生性能影响。如果你可以将它重写为CALCULATE(SUM(),ALL(Datasrc [Year]))/ ALL(Datasrc [Year]),你肯定会得到更快的评估,但我不知道你的数据是什么样的。