2017-06-22 148 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: