2016-12-07 61 views
0

我對現場過程的完成報告,使用非常簡單的DataModel IN'類型的限制:的PowerPivot/DAX措施與SQL「WHERE上只有一個一個的值

enter image description here

這給了我一個數據透視表看起來右下圖所示:

enter image description here

我處理複雜性在於我只希望報告中的發現基於人與職稱的Course1模塊百分比Course1 Audience Table顯示在數據透視表左側。目前,我被硬編碼的職稱爲我的措施,像這樣實現這一點:

IF(HASONEVALUE(Completions[Module]), 
    IF(VALUES(Completions[Module])="Course1", 
     CALCULATE(COUNTA(Completions[Email]), 
      OrgChart[Title]="Job Title 1" 
      ||OrgChart[Title]="Job Title 2" 
      ||OrgChart[Title]="Job Title 3" 
      ||OrgChart[Title]="Job Title 4" 
      ||OrgChart[Title]="Job Title 5") 
     /CALCULATE(COUNTA(AllStaff[Email]), 
      OrgChart[Title]="Job Title 1" 
      ||OrgChart[Title]="Job Title 2" 
      ||OrgChart[Title]="Job Title 3" 
      ||OrgChart[Title]="Job Title 4" 
      ||OrgChart[Title]="Job Title 5")) 
    ,COUNTA(Completions[Email])/COUNTA(AllStaff[Email])) 
,BLANK()) 

雖然這工作得很好,這是相當笨拙,我只是討厭硬編碼邏輯到那樣的措施。我寧願有措施從表吸那些標題爲Course1,使最終用戶能修改此列表,而不必瞭解如何編寫DAX措施。

有沒有什麼辦法可以代替引用「課程1對象」表在我的措施,而不是這些位?:

OrgChart[Title]="Job Title 1" 
||OrgChart[Title]="Job Title 2" 
||OrgChart[Title]="Job Title 3" 
||OrgChart[Title]="Job Title 4" 
||OrgChart[Title]="Job Title 5" 

請注意,這僅適用於Course1。所有其他課程的完成率應該根據全體員工進行計算,而不是排除在課程1受衆表中的那些職位上。

回答

1

您可以使用CONTAINS()函數。這個小片段應該可以工作,雖然我沒有你的數據,所以我不能測試它。確保您的課程1受衆羣體數據也存儲在您的數據模型中。

FILTER(OrgChart,CONTAINS(VALUES([Course 1 Audience]),[Course 1 Audience],OrgChart[Title]) 
+0

完美!感謝那。 – jeffreyweir