2017-08-08 31 views
0

正確工作,我已經創建了我創建了像一些措施的報告 -合計/總和雙向電力

X = 
CALCULATE (
    DISTINCTCOUNT (ActivityNew[Name]), 
    FILTER (
     ActivityNew, 
     ActivityNew[Resource Owner Name] = MAX ('Resource Owners'[Manager Name]) 
      && ActivityNew[LocationId] = 2 
    ) 
) 

當我使用這一措施在表中則列值不積少成多。例如。如果這個度量的值是2,2,2,2,2那麼表中的Total應該是10.但是它顯示爲2.

我已經注意到,無論我使用這個MAX(),測量值沒有加起來。

爲什麼發生這種情況,他們的任何解決方案?

+0

[如何創建一個最小的,完整的,並且可驗證示例](https://stackoverflow.com/help/mcve) – user5226582

回答

3

您使用的是一般不可聚合的DISTINCTCOUNT

假設你有如下表Sales

+----------+------+-------+ 
| Customer | Item | Count | 
+----------+------+-------+ 
| Albert | Coke | 3  | 
| Bertram | Beer | 5  | 
| Bertram | Coke | 2  | 
| Charlie | Beer | 1  | 
+----------+------+-------+ 

如果你想計算不同項目每個客戶已經購買的數量,你會創建一個結構式的新措施:

[Distinct Items] := DISTINCTCOUNT(Sales[Item])

如果在報告中包含[Customer]列和[Distinct Items]度量,它將輸出以下內容:

+----------+----------------+ 
| Customer | Distinct Items | 
+----------+----------------+ 
| Albert | 1    | 
| Bertram | 2    | 
| Charlie | 1    | 
+----------+----------------+ 
| Total | 2    | 
+----------+----------------+ 

如您所見,這並不總和,因爲總行的上下文是整個表格,未被任何特定客戶過濾。爲了改變這種行爲,你必須明確地告訴你的度量,它應該對顧客層次派生的值進行求和。要做到這一點,use the SUMX function。在我的例子中,測量公式應該改變這樣的:

[Distinct Items] := SUMX(VALUES(Sales[Customer]), DISTINCTCOUNT(Sales[Item]))

正如我只想總結過我使用VALUES(Sales[Customer])唯一客戶。如果你想總結表中的每一行,只需:SUMX(<table name>, <expression>)

隨着這一變化,在上面的例子中的輸出將是:

+----------+----------------+ 
| Customer | Distinct Items | 
+----------+----------------+ 
| Albert | 1    | 
| Bertram | 2    | 
| Charlie | 1    | 
+----------+----------------+ 
| Total | 4    | 
+----------+----------------+