2017-06-22 140 views
1

我在Power BI报告中需要DAX度量的帮助。我只是在了解措施,所以很抱歉,如果这似乎是一个新手问题。如何获得我的DAX度量值以计算分组值?

这里是我的情况:

该报告的目的是要显示在本市各个位置用水量。数据来自IOT传感器,每隔几分钟左右就会有新的条目。

的数据的样品通常看起来像这样:

|SensorID |Timestamp   |Reading 
|----------|---------------------|-------- 
|1   |2017-06-22 12:01 AM |123.45 
|1   |2017-06-22 12:15 AM |124.56 
|1   |2017-06-22 12:36 AM |128.38 
|2   |2017-06-22 02:12 AM |564.75 
|2   |2017-06-22 02:43 AM |581.97 

我有一个简单DAX措施,我使用来计算水用量为每个位置/传感器,在报告中选择的当前日期范围(通过时间线控制):

Usage:= (MAX([Reading]) - MIN([Reading])) 

当选择单个位置/传感器时,此措施效果很好。但是,当我选择多个位置时,计算不正确。它采用所有传感器的MAX值,并从所有传感器中减去MIN值 - 而不是从每个位置计算使用量,然后总结使用情况。

例如,上面给出的数据样本,正确的计算应该是:

Total Usage = (128.38 - 123.45) + (581.97 - 564.75) = 22.15 

相反,它是这样计算的:

Total Usage = (581.97 - 123.45) = 458.52 

我怎样才能获得测量计算使用情况,按传感器ID分组?

我希望这是有道理的。

谢谢!

回答

1

试试这个:

Total Usage:= SUMX(VALUES(MyTable[SensorID]), [Usage]) 

VALUES(MyTable的[SensorID])功能提供了独特的SensorIDs的列表。 SUMX函数然后逐个遍历该列表并计算每个SensorID的[Usage]度量值。然后总结结果。

另一种解决方案:

Total Usage:= SUMX(SUMMARIZE(MyTable, MyTable[SensorID]), [Usage]) 

它以同样的方式,是通过总结函数,而不是返回的值只有独特的传感器ID的列表。

结果:

Results: