DAX/PowerBI - 平均群体价值
DAX/PowerBI - Average Group Value
我在 PowerBI 中有一个类似于以下内容的 table:
Table1
Name Group GroupScore
Jim 1 75
Al 1 75
Becky 1 75
Ann 2 10
Cody 2 10
Zack 3 90
Jane 4 90
我需要一个可以告诉我平均 GroupScore 的度量。
换句话说,如果选择了所有组,我希望结果为 (75+10+90+90)/4 = 66.25
简单的 AVERAGE([GroupScore]) 会产生不正确的结果,因为它没有考虑只有 4 个组的事实。 GroupScore 实际上是所有 Group Members 分数相加的总和。一个简单的平均值会给我 (75 + 75 + 75 + 10 + 10 + 90 + 90) / 7 = 60.7 这意味着第 1、2 和 3 组的分数是 "double counted" 并且权重不公平。
以下DAX指标可以做到:
Average =
AVERAGEX(
DISTINCT(SELECTCOLUMNS(Table1, "Group", Table1[Group], "GroupScore", Table1[GroupScore])),
[GroupScore]
)
所以基本上它获取 Group
和 GroupScore
的不同列值并取平均值。
它也适用于 Group
过滤器。
我在 PowerBI 中有一个类似于以下内容的 table:
Table1
Name Group GroupScore
Jim 1 75
Al 1 75
Becky 1 75
Ann 2 10
Cody 2 10
Zack 3 90
Jane 4 90
我需要一个可以告诉我平均 GroupScore 的度量。
换句话说,如果选择了所有组,我希望结果为 (75+10+90+90)/4 = 66.25
简单的 AVERAGE([GroupScore]) 会产生不正确的结果,因为它没有考虑只有 4 个组的事实。 GroupScore 实际上是所有 Group Members 分数相加的总和。一个简单的平均值会给我 (75 + 75 + 75 + 10 + 10 + 90 + 90) / 7 = 60.7 这意味着第 1、2 和 3 组的分数是 "double counted" 并且权重不公平。
以下DAX指标可以做到:
Average =
AVERAGEX(
DISTINCT(SELECTCOLUMNS(Table1, "Group", Table1[Group], "GroupScore", Table1[GroupScore])),
[GroupScore]
)
所以基本上它获取 Group
和 GroupScore
的不同列值并取平均值。
它也适用于 Group
过滤器。