我们有一个名为 MetricsTable 的表格,其中包含 A1 和组列。
我们希望在此表中添加计算列 AvgA1 ,以计算按组的值过滤的 A1 列的平均值。我们的DAX查询应该是什么?关键是我们想要从同一个表中的值中计算平均值。
| id | A1 |集团| AvgA1
| - | --- | --- ------ | ----
| 1 | 20 |组别1 | 20
| 2 | 10 |第2组| 30
| 3 | 50 |第2组| 30
| 4 | 30 |第2组| 30
| 5 | 35 |组3 | 35
此致
答案 0 :(得分:2)
可能您应该使用度量并将该度量放入数据透视表的“值”部分:
AverageA1:=
AVERAGE( Metrics[A1] )
然后,它将根据数据透视表中的过滤器和切片器选择进行更新,并在各种维度类别中进行适当的小计。
如果由于您的问题中未列举的原因而严格需要成为表格中的列,则以下内容将起作用:
AverageA1 =
CALCULATE(
AVERAGE( Metrics[A1] )
,ALLEXCEPT( Metrics, Metrics[Group] )
)
CALCULATE()接受一个表达式和一个0-N参数列表来修改评估该表达式的过滤器上下文。
ALLEXCEPT()接受一个表,以及一个1-N字段列表,用于保存上下文。此列定义的评估中的当前(行)上下文是该行上每个字段的值。我们从ALL字段中删除上下文,除了在ALLEXCEPT()的参数2-N中命名的那些字段。因此,我们保留[Group]的行上下文,并计算表格中的平均值,其中[Group]与当前上下文中的相同。