如何让我的 DAX 度量来计算分组值?
How do I get my DAX measure to calculate grouped values?
我需要有关 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 度量,用于计算报告中 select 的当前日期范围内每个 location/sensor 的用水量(通过时间轴控制):
Usage:= (MAX([Reading]) - MIN([Reading]))
当单个 location/sensor 被 select 编辑时,此措施非常有效。但是,当我 select 多个位置时,计算不正确。它从所有传感器中获取最大值,并从所有传感器中减去最小值 - 而不是计算每个位置的使用情况,然后对使用情况求和。
例如,给定上面的数据样本,正确的计算应该是:
Total Usage = (128.38 - 123.45) + (581.97 - 564.75) = 22.15
相反,它是这样计算的:
Total Usage = (581.97 - 123.45) = 458.52
如何获取按传感器 ID 分组的度量来计算使用情况?
我希望这是有道理的。
谢谢!
试试这个:
Total Usage:= SUMX( VALUES(MyTable[SensorID]), [Usage])
VALUES(MyTable[SensorID]) 函数给出了唯一 SensorID 的列表。然后 SUMX 函数逐一检查该列表并计算每个 SensorID 的 [Usage] 度量。然后总结结果。
另一种解决方案:
Total Usage:= SUMX( SUMMARIZE(MyTable, MyTable[SensorID]), [Usage])
它的工作方式相同,只有唯一传感器 ID 列表由 SUMMARIZE 函数而不是 VALUES 返回。
结果:
我需要有关 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 度量,用于计算报告中 select 的当前日期范围内每个 location/sensor 的用水量(通过时间轴控制):
Usage:= (MAX([Reading]) - MIN([Reading]))
当单个 location/sensor 被 select 编辑时,此措施非常有效。但是,当我 select 多个位置时,计算不正确。它从所有传感器中获取最大值,并从所有传感器中减去最小值 - 而不是计算每个位置的使用情况,然后对使用情况求和。
例如,给定上面的数据样本,正确的计算应该是:
Total Usage = (128.38 - 123.45) + (581.97 - 564.75) = 22.15
相反,它是这样计算的:
Total Usage = (581.97 - 123.45) = 458.52
如何获取按传感器 ID 分组的度量来计算使用情况?
我希望这是有道理的。
谢谢!
试试这个:
Total Usage:= SUMX( VALUES(MyTable[SensorID]), [Usage])
VALUES(MyTable[SensorID]) 函数给出了唯一 SensorID 的列表。然后 SUMX 函数逐一检查该列表并计算每个 SensorID 的 [Usage] 度量。然后总结结果。
另一种解决方案:
Total Usage:= SUMX( SUMMARIZE(MyTable, MyTable[SensorID]), [Usage])
它的工作方式相同,只有唯一传感器 ID 列表由 SUMMARIZE 函数而不是 VALUES 返回。
结果: