2017-10-10 96 views
0

我有以下PowerBI DAX措施。由於數據結構的原因,它必須是複雜的。該措施正常工作,並返回每個客戶的活動合同數量。這很好地顯示在可視網格上,併爲所有客戶提供所有活動合同的總數。PowerBI DAX - 計算,CountRows,RelatedTable,獲得TOP 1

ActiveContracts = CALCULATE(COUNTROWS(RELATEDTABLE(Contracts)), 
FILTER(Contracts, 
     (
     Contracts[StartDate] >= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
     Contracts[StartDate] <= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) 
     )  
     || 
     (
     Contracts[End Date] >= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
     Contracts[End Date] <= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) 
     ) 
     || 
     (
     Contracts[StartDate] <= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
     Contracts[End Date] >= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) 
     ) 
    )  
) 

不過,我只需要在第一個結果,或更簡單地說,只是一個事實,即有一個結果(即對客戶的活躍合約)。

我已經嘗試了一些東西,我可以得到的最接近的是上面的一個頂部的另一項措施:

HasContract = CALCULATE(IF(ISBLANK([CCActiveContract]), 0, 1)) 

這則工作於行級,但是當我總列本新的措施,它總共給出1,而我希望有一個活躍合同的所有客戶的數量?

我缺少什麼?

感謝

回答

1

由湯姆·馬滕斯上使用PowerBI論壇(link)解決了:

ContractPerCustomer = SUMX(Customer, IF([ActiveContracts] > 0, 1, 0))