如何为含Other分组的DEST表按销售额排序并固定Other至末尾?
解决方案
你可以通过调整DAX公式,单独处理"Other"的排名逻辑,让它始终处于最后位置,同时保证Top N的DEST按销售额降序排名。以下是两种可行的实现方式:
方法一:基于COUNTROWS的自定义排名
Order = VAR TotalRows = COUNTROWS('DEST ARM Order') VAR IsOther = 'DEST ARM Order'[DEST] = "Other" VAR NormalRank = COUNTROWS( FILTER( 'DEST ARM Order', 'DEST ARM Order'[DEST] <> "Other" && 'DEST ARM Order'[CWT] >= EARLIER('DEST ARM Order'[CWT]) ) ) RETURN IF(IsOther, TotalRows, NormalRank)
TotalRows:获取表的总行数,将其设为"Other"的排名值,确保它处于最后一位IsOther:判断当前行是否为"Other"分组NormalRank:仅对非"Other"的DEST,计算销售额大于等于当前行的行数,实现降序排名- 最后通过
IF函数分支返回对应的排名值
方法二:使用RANKX函数简化实现
Order = IF( 'DEST ARM Order'[DEST] = "Other", COUNTROWS('DEST ARM Order'), RANKX( FILTER('DEST ARM Order', 'DEST ARM Order'[DEST] <> "Other"), 'DEST ARM Order'[CWT], , DESC, DENSE ) )
- 对"Other"直接返回总行数作为排名
- 对其他DEST,用
RANKX在排除"Other"的子集内进行降序排名,DENSE参数表示密集排名(无间隔),如果需要跳跃排名可以换成SKIP
内容的提问来源于stack exchange,提问作者user19351102
相关产品推荐
相关产品推荐

