分组列的数据透视表平均值

PivotTable Average of group columns

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

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

为清楚起见,C 列、C5 至 C26 行显示了公司 1 的平均值。 C28 到 C49 行显示公司 2 的平均值。

知道如何进行吗?

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

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

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

ALL() returns 个 table 列或一组列的唯一元素,已去除上下文。由于我们仅在 [Year] 列上调用 ALL(),因此这是我们删除其上下文的唯一列。来自 [Stock Ticker] 的上下文仍然存在。

这两项措施在总计层面上是不合理的。

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