我从Excel获得了这个简单的数据集:
Date Person Amount
Jan-18 jason 1
Jan-18 fred 2
Jan-18 george 3
Feb-18 jason 10
Feb-18 fred 12
Feb-18 george 15
Feb-18 jim 25
我添加了两项措施:
Amount = SUM( Data[Amount] )
和
Average Amount per Person =
AVERAGEX(
VALUES( Data[Person]),
[Amount]
)
这符合我的预期,并且在我选择特定日期时是动态的:
我现在想要的是“高于平均水平的人数” - 所以在屏幕截图中只有Jim高于15.50所以该度量应该返回1.
我对此措施的尝试是这样的:
Number of Persons Above Average =
CALCULATE(
DISTINCTCOUNT( Data[Person] ),
FILTER(
Data,
SUM( Data[Amount] ) >= [Average Amount per Person]
)
)
如下所示,它只返回显示的人数 - 在这种情况下为4
如何将上述指标修改为正确的DAX
?
答案 0 :(得分:1)
我喜欢在以下情况下使用变量:
Number of Persons Above Average =
VAR AveragePerPerson = [Average Amount per Person]
RETURN
CALCULATE ( DISTINCTCOUNT ( Data[Person] ),
Data[Amount] >= AveragePerPerson )
这样您就不必担心如何在CALCULATE
内计算平均指标,而不必使用FILTER
函数。