我想计算每个类别的总销售额的中位数。
如果我创建以下两个度量,它可以完美地运行:
SoS := SUM(Table1[Sales])
Median Category Sales :=
MEDIANX(
CALCULATETABLE(VALUES(Table1[Category]), ALL(Table1)),
[SoS]
)
但是,如果我没有嵌套测量值,则不计算中位数,它只返回总和。
Median without measure :=
MEDIANX(
CALCULATETABLE(VALUES(Table1[Category]), ALL(Table1)),
SUM(Table1[Sales])
)
见下面的结果:
为什么会这样?我认为这两种方法完全相同。
实际上,第一种方法相当于以下内容:
Median Category Sales :=
MEDIANX(
CALCULATETABLE(VALUES(Table1[Category]), ALL(Table1)),
CALCULATE(SUM(Table1[Sales]))
)
SoS度量隐式地将其公式包装在CALCULATE中,这会导致通过VALUES提供的每个类别的上下文转换,从而正确计算销售额,从而计算中位数。