计数唯一的出现次数PowerPivot

问题描述:

我是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% 

如果你能指出我到这已得到解决后还是让我知道,解决的最好办法这我很感激。谢谢。

您需要删除以 - 开头的文本。我想描述一下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) 
 
)

这里是这样做(假设表名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