高于平均值的人数

时间:2018-05-02 09:20:45

标签: powerbi dax

我从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]
  )

这符合我的预期,并且在我选择特定日期时是动态的:

enter image description here

我现在想要的是“高于平均水平的人数” - 所以在屏幕截图中只有Jim高于15.50所以该度量应该返回1.

我对此措施的尝试是这样的:

Number of Persons Above Average = 
  CALCULATE(
      DISTINCTCOUNT( Data[Person] ),
      FILTER(
          Data,
          SUM( Data[Amount] ) >= [Average Amount per Person]
      )
  )

如下所示,它只返回显示的人数 - 在这种情况下为4

如何将上述指标修改为正确的DAX

enter image description here

1 个答案:

答案 0 :(得分:1)

我喜欢在以下情况下使用变量:

Number of Persons Above Average =
  VAR AveragePerPerson = [Average Amount per Person]
  RETURN
      CALCULATE ( DISTINCTCOUNT ( Data[Person] ),
          Data[Amount] >= AveragePerPerson )

这样您就不必担心如何在CALCULATE内计算平均指标,而不必使用FILTER函数。