Power BI中为筛选后表格添加排名/行号失败求助
问题原因
你当前使用的DAX度量值Visitor num = RANKX('myTab',CALCULATE(count('myTab'[Name])))返回全1的核心原因是:CALCULATE(count('myTab'[Name]))在每行的筛选上下文下,仅统计当前行的Name计数(结果恒为1),所有行的排名依据值完全相同,因此排名全部为1。
解决方案
根据你需要的是筛选后连续行号还是支持并列的排名,分别使用以下DAX度量值:
1. 生成筛选后连续行号(1、2、3...顺序编号)
如果只是需要给筛选后的结果按显示顺序添加连续编号,使用这个度量值:
Visitor Num = VAR CurrentName = SELECTEDVALUE('myTab'[Name]) RETURN COUNTROWS( FILTER( ALLSELECTED('myTab'[Name]), 'myTab'[Name] <= CurrentName ) )
- 逻辑说明:
ALLSELECTED('myTab'[Name])保留Room number筛选器的上下文,仅取筛选后的Name列表;通过统计当前Name之前(含当前)的行数,生成连续行号。 - 注意:如果Name存在重复值,建议替换为表中的唯一标识列(如ID列),避免编号混乱。
2. 生成支持并列的排名
如果需要按规则排名(比如按Name排序,同名则排名相同),使用这个度量值:
Visitor Rank = RANKX( ALLSELECTED('myTab'), 'myTab'[Name], , ASC, DENSE )
- 参数说明:
ALLSELECTED('myTab'):限定排名范围为筛选后的数据集ASC:按Name升序排名(改为DESC则为降序)DENSE:密集排名(并列值共用同一排名,后续排名不跳号;若需跳号排名,替换为SKIP)
内容的提问来源于stack exchange,提问作者Riggun
相关产品推荐
相关产品推荐

