计数唯一的出现次数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)
)
答
这里是这样做(假设表名emps
和sales
)的一个简单的方法:
=IF (DISTINCTCOUNT (sales[Emp ID]) = BLANK(),
0,
DISTINCTCOUNT (sales[Emp ID])
)
/COUNTROWS (emps)
的IF()只需要确保人们谁避风港” t出售出现在枢轴中。所有实际公式所做的是将销售行数除以员工行数。
雅各布
令人惊讶的简单...不错! – 2014-12-03 11:43:56
欢呼声matey。应该可能包含了一个巨大的“真实世界”警告,但为这个数据结构做了工作! – Jacob 2014-12-03 12:11:11