DAX 查询以获取同一 table 内的列的平均值
DAX Query to get average of a column within the same table
我们有一个名为 MetricsTable 的 table,它有列 A1 和 Group 简单地。
我们要向此 table 添加一个计算列 AvgA1,它计算由 A1 过滤的列的平均值Group 的值。我们的 DAX 查询应该是什么?关键是我们要从相同 table.
内的值计算平均值
|编号 | A1|集团 |平均 A1
| -- | --- | --- ------| ----
| 1 | 20 |第1组| 20
| 2 | 10 |第2组| 30
| 3 | 50 |第2组| 30
| 4 | 30 |第2组| 30
| 5 | 35 |第3组| 35
此致
您可能应该使用度量并将该度量放入数据透视表 table 的 'Values' 部分:
AverageA1:=
AVERAGE( Metrics[A1] )
然后它将根据数据透视表 table 中的过滤器和切片器选择进行更新,并在各个维度类别中适当地小计。
如果由于您的问题中未列举的原因,它严格需要成为 table 中的一列,则以下方法可行:
AverageA1 =
CALCULATE(
AVERAGE( Metrics[A1] )
,ALLEXCEPT( Metrics, Metrics[Group] )
)
CALCULATE() 采用表达式和 0-N 个参数的列表来修改计算该表达式的过滤器上下文。
ALLEXCEPT() 采用 table 和一个包含 1-N 个字段的列表,从中保留上下文。此列定义评估中的当前(行)上下文是该行上每个字段的值。我们从 ALLEXCEPT() 的参数 2-N 中命名的那些字段除外的所有字段中删除上下文。因此,我们保留 [Group] 的行上下文,并计算 table 的平均值,其中 [Group] 与当前上下文相同。
我们有一个名为 MetricsTable 的 table,它有列 A1 和 Group 简单地。
我们要向此 table 添加一个计算列 AvgA1,它计算由 A1 过滤的列的平均值Group 的值。我们的 DAX 查询应该是什么?关键是我们要从相同 table.
内的值计算平均值|编号 | A1|集团 |平均 A1
| -- | --- | --- ------| ----
| 1 | 20 |第1组| 20
| 2 | 10 |第2组| 30
| 3 | 50 |第2组| 30
| 4 | 30 |第2组| 30
| 5 | 35 |第3组| 35
此致
您可能应该使用度量并将该度量放入数据透视表 table 的 'Values' 部分:
AverageA1:=
AVERAGE( Metrics[A1] )
然后它将根据数据透视表 table 中的过滤器和切片器选择进行更新,并在各个维度类别中适当地小计。
如果由于您的问题中未列举的原因,它严格需要成为 table 中的一列,则以下方法可行:
AverageA1 =
CALCULATE(
AVERAGE( Metrics[A1] )
,ALLEXCEPT( Metrics, Metrics[Group] )
)
CALCULATE() 采用表达式和 0-N 个参数的列表来修改计算该表达式的过滤器上下文。
ALLEXCEPT() 采用 table 和一个包含 1-N 个字段的列表,从中保留上下文。此列定义评估中的当前(行)上下文是该行上每个字段的值。我们从 ALLEXCEPT() 的参数 2-N 中命名的那些字段除外的所有字段中删除上下文。因此,我们保留 [Group] 的行上下文,并计算 table 的平均值,其中 [Group] 与当前上下文相同。