PowerBI Rankx仅返回1

时间:2019-11-22 17:45:21

标签: powerbi dax

我有一张称为佣金摘要的表,用于销售代表 该表为每个月的每个销售代表生成一个摘要行。我只想按每个月对销售代表进行排名,但是我的公式只返回1。


表格可以简化为此

Sales reps     Target Attainment 
John, deer     53%
Jane, Joe      160% 
Adam, Smith    30%

我的目标是像这样显示我的桌子

Sales reps     Target Attainment     Rank
John, deer     53%                    2
Jane, Joe      160%                   1
Adam, Smith    30%                    3  

这是我正在使用的Rankx公式

Ranks =
RANKX (
    ALL ( 'Commission Summary' ),
    CALCULATE (
        SUM ( 'Commission Summary'[Target Attainment] ),
        'Commission Summary'[Date] = 10 / 01 / 2019
    ),
    ,
    DESC
)

如前所述,我只是将日期过滤为十月。

请帮助:(

1 个答案:

答案 0 :(得分:0)

问题出现在计算的过滤器'Commission Summary'[Date] = 10 / 01 / 2019中。引擎首先将每个数字除以10/01 = 10和10/2019 = 0.00495,该日期在您的数据中不存在,对于所有值返回空白,因此所有出现次数的排名都为1(因为所有相同的空白值)。

为避免此问题,请使用'Commission Summary'[Date] = DATE(2019,10,1)作为过滤器上下文。这将返回正确排序的排名,但您将对所有销售代表进行排名,包括该日期没有活动的销售代表(它们将位于排名的底部)

如果您想更进一步,我建议使用以下步骤:

  1. 首先创建一个度量:

    Comission Summary Filtered = CALCULATE ( SUM ( 'Commission Summary'[Target Attainment] ), 'Commission Summary'[Date] = DATE(2019,10,1)

  2. 然后使用以下代码按该度量进行过滤:

Rank = IF ( [Comision Summary Filtered] > 0, RANKX ( ALL ( 'Commission Summary' ), [Comision Summary Filtered],, DESC, DENSE ) )

这样您将获得一个更干净的结果。 :)