如何获取DAX度量来计算分组值?

时间:2017-06-22 21:32:01

标签: powerbi dax

我的Power BI报告中需要有关DAX度量的帮助。我只是在学习措施,对不起,如果这看起来像是一个新手问题。

这是我的情景:

报告的目的是显示市政当局不同地点的用水量。数据来自物联网传感器,每隔几分钟就会有新的条目。

数据样本通常如下所示:

|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 个答案:

答案 0 :(得分:1)

试试这个:

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

VALUES(MyTable [SensorID])函数提供唯一SensorID列表。 SUMX函数然后逐个遍历该列表并计算每个SensorID的[Usage]度量。然后它总结了结果。

另一种解决方案:

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

它的工作方式相同,只有SUMMARIZE函数而不是VALUES返回唯一传感器ID列表。

结果:

Results: