2014-12-01 153 views
0

我是PowerPivot和DAX公式的新手。我假設我想要做的是非常基本的,它可能已經在某個地方回答了,我只是不知道要在它上面找到它。計數唯一的出現次數PowerPivot

我想確定銷售人員在特定區域進行銷售的百分比。我有兩張表,一張列出銷售人員,另一張列出一個季度的所有銷售情況。例如

Employee ID 
123 
456 
789 

Sales ID - Emp ID - Amount 
135645 ---- 123 ----- $50 
876531 ---- 123 ----- $127 
258546 ---- 123 ----- $37 
516589 ---- 789 ----- $128 
998513 ---- 789 ----- $79 

結果,數據透視表是這樣的:

Emp ID - % w/ sales 
123 -------- 100% 
456 -------- 0% 
789 -------- 100% 
Total ------- 66% 

如果你能指出我到這已得到解決後還是讓我知道,解決的最好辦法這我很感激。謝謝。

回答

0

您需要刪除以 - 開頭的文本。我想描述一下DAX在做什麼。這可能不會達到你想要的,因爲它只會影響上下文中的員工。 E.x .:如果用戶過濾了所有沒有銷售的員工,總數是100%還是66%?對於前者,您需要使用ALL DAX功能,而下面的DAX則使用後者。我對DAX非常陌生,所以我相信有更好的方式來做你想做的事情。

=IF 
 
(
 
-- are we processing 1 employee or multiple employees? (E.x.: The grand total processes multiple employees...) 
 
COUNTROWS(VALUES(employee[Employee ID])) > 1, 
 

 

 
--If Processing multiple employees do X/Y 
 
-- Where X = The number of employees that have sales 
 
-- Where Y = The number of employees selected by the user 
 
COUNTROWS(FILTER(employee, NOT(ISBLANK(CALCULATE(COUNT(sales[Sales ID]))))))/COUNTROWS(employee), 
 

 

 
-- If processing single employee, return 0 if they have no sales, and 1 if they have sales 
 
IF 
 
\t (
 
\t ISBLANK(CALCULATE(COUNT(sales[Sales ID]))), 
 
\t 0, 
 
\t 1 
 
\t) 
 
)

2

這裏是這樣做(假設表名empssales)的一個簡單的方法:

=IF (DISTINCTCOUNT (sales[Emp ID]) = BLANK(), 
     0, 
     DISTINCTCOUNT (sales[Emp ID]) 
    ) 
    /COUNTROWS (emps) 

的IF()只需要確保人們誰避風港」 t出售出現在樞軸中。所有實際公式所做的是將銷售行數除以員工行數。

雅各布

+0

令人驚訝的簡單...不錯! – 2014-12-03 11:43:56

+0

歡呼聲matey。應該可能包含了一個巨大的「真實世界」警告,但爲這個數據結構做了工作! – Jacob 2014-12-03 12:11:11