Excel RANK公式无法解决并列问题:随机并列处理失效求助
修正随机并列排名公式
修正后的公式
=RANK.EQ(E2,E:E,0)+RANK.EQ(ROW(),SORTBY(FILTER(ROW($E:$E),$E:$E=E2),RANDARRAY(COUNTIF($E:$E,E2))),0)-1
原公式问题分析
原公式通过RANDARRAY(1,COUNTIF($E:$E,$E2),0,1)<0.5生成0或1的随机值处理并列,但同组的多个行可能生成相同的随机结果,导致偏移量重复,无法彻底解决并列问题。
修正逻辑说明
- 基础排名:
RANK.EQ(E2,E:E,0)计算当前E值的初始排名(并列项会得到相同值) - 筛选同组行:
FILTER(ROW($E:$E),$E:$E=E2)提取所有与当前行E值相同的行号,锁定处理范围 - 随机打乱组内顺序:
SORTBY(...,RANDARRAY(COUNTIF($E:$E,E2)))用随机数组对同组行号进行排序,生成唯一的随机顺序 - 生成唯一偏移量:
RANK.EQ(ROW(),...,0)-1计算当前行在随机排序后的组内位置,转换为0到组大小-1的唯一偏移量,加到基础排名后,确保同组内每个行的最终排名唯一
内容的提问来源于stack exchange,提问作者CNG09d
相关产品推荐
相关产品推荐

