首页 文章

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

提问于
浏览
1

我的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 回答

  • 1

    试试这个:

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

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

    替代解决方案:

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

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

    结果:

    Results:

相关问题