[已解决] 如何解决升序排名中空值被计入的问题

  [复制链接]
查看95678 | 回复112 | 2020-9-25 03:28:40 | 显示全部楼层 |阅读模式
在RankX的排名中,空值也会被计入排名。

在降序时,空值可以通过DAX过滤;但在升序时,空值直接会影响排名。

如图所示,能否通过DAX函数,将左侧红框内的升序排名,变成右侧红框的升序排名?

请版主和各位大神指点。

谢谢。 10416101857331.png
10416101857334.zip (64.85 KB, 下载次数: 0)
回复

使用道具 举报

dk77 | 2020-9-25 03:33:40 | 显示全部楼层
Rank_Asc:=IF([Rev]=BLANK(),BLANK(),
    RANKX(ALLSELECTED(Dim[名称]),[Rev],,ASC)
    -CALCULATE(COUNT(Dim[名称]),FILTER(ALLSELECTED(Dim[名称]),[Rev]=0)))
回复

使用道具 举报

柳叶刀 | 2020-9-25 03:39:40 | 显示全部楼层
=IF (
  [Rev],
  RANKX ( FILTER ( ALLSELECTED ( Dim[名称] ), [Rev] > 0 ), [Rev],, ASC )
)
回复

使用道具 举报

大星星 | 2020-9-25 03:43:40 | 显示全部楼层
=IF (
  [Rev],
  RANKX ( FILTER ( ALLSELECTED ( Dim[名称] ), [Rev] > 0 ), [Rev],, ASC )


FILTER帅气
回复

使用道具 举报

老游子 | 2020-9-25 03:50:41 | 显示全部楼层
=IF (
  [Rev],
  RANKX ( FILTER ( ALLSELECTED ( Dim[名称] ), [Rev] > 0 ), [Rev],, ASC )


感谢指点。

通过“>0”,可以去除空值。

假设存在另一场景,想去除空值(blank)的同时又想保留零值(0),您有何高见?

谢谢。 10416101857332.png
回复

使用道具 举报

路人乙 | 2020-9-25 03:56:41 | 显示全部楼层
瞎凑个
————
=IF( MAX('Dim'[名称]) in ALL('Fact'[名称]),
   RANKX (ALLSELECTED ('Dim'[名称]),[Rev],,ASC,Dense))
回复

使用道具 举报

fuyunjushi | 2020-9-25 04:02:41 | 显示全部楼层
瞎凑个
————
=IF( MAX('Dim'[名称]) in ALL('Fact'[名称]),


神来之笔,十分感谢。

对于 Max() in All()这种用法,第一次看到,可否有劳再简单解释一下?

另外,度量值编辑器显示红色,但检查公式,未发现错误,是微软的Bug吗? 10416101857333.png
回复

使用道具 举报

mxky | 2020-9-25 04:05:41 | 显示全部楼层
神来之笔,十分感谢。

对于 Max() in All()这种用法,第一次看到,可否有劳再简单解释一下?


我只看过几个视频不会理论
回复

使用道具 举报

oscar | 2021-4-25 10:38:30 | 显示全部楼层
路过 帮顶 嘿嘿
回复

使用道具 举报

cindeya | 2021-5-30 13:10:22 | 显示全部楼层
楼猪V5啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则