RANKX 显示双数和跳过系列

RANKX showing double numbers and skipping series

我一直在尝试使用计算列对 2 列进行排名,但是,我似乎无法使其正常工作。我是 Power BI 的新手,所以我不确定我是否遗漏了什么。我怀疑它与我的过滤器有关,但即使没有过滤器,RANKX 仍然无法正常工作。

我创建了一个新的table

rankingYear = 
SUMMARIZE(
    responses,
    responses[Year],    
    responses[Name],
    "Positive", SUM(responses[Positive]),
    "Passive", SUM(responses[Passive]),
    "Negative", SUM(responses[Negative]),
    "Responses", SUM(responses[Responses]),
    "Score", IFERROR(((SUM(responses[Positive])/SUM(responses[Responses]))-(SUM(responses[Negative])/SUM(responses[Responses])))*100,0)
    )

然后我将其转换为 Table 可视化,然后我添加了一些过滤器以隐藏空 Names, Year是 2022,并且 Responses 必须大于 4

然后我创建了一个 Ranker 列,稍后我将用于 RANKX:

Ranker = 
VAR MaxResponse = MAX(rankingYear[Responses])
VAR Result =            
       (rankingYear[Score] * MaxResponse) + rankingYear[Responses]    
RETURN
    Result

然后我创建了排名列:

Rank = RANKX(ALLSELECTED(rankingYear),rankingYear[Ranker],,DESC,Dense)

但是,它不会显示正确的系列。它加倍并跳过一些数字:

我在此处向我的示例数据添加 link: Sample Data

希望有人能帮我解决这个问题。谢谢!

问题是您将度量放入计算列中。作为一个列,您的度量工作得很好,因为它对 table 中的每一行进行了排名,就像您可以查看是否查看数据一样。计算列不受筛选视觉对象的影响。要使 table 视觉过滤器发挥作用,只需将其转换为适当的度量即可。为了方便工作,可以对RANKX表达式进行度量,例如:

Ranker_Sum = SUM('Sample Data'[Ranker])

你们都准备好了:

Rank as a measure = RANKX(ALLSELECTED('Sample Data'); [Ranker_Sum];;DESC;Dense)

它应该在 table 有过滤器的情况下像这样工作。