按照总成绩从低到高排名

墨云轩
墨云轩

创作者俱乐部成员

网上看到这样一道题,按照总成绩从低到高排名,如下图:

思索半天,想到两种方法:

  1. 求出总成绩建立辅助列,然后用rank函数排名

很显然这个方法很简单,rank函数也是比较常见的排名函数,那么我们怎么用一个公式计算出排名呢?

  1. 没想到特别好的方法,后来利用match,large,row函数嵌套勉强完成。

这个公式有个缺点,假如某个学生某科目显示缺考,将出现错误,后来根据其他大佬分享的公式受到启发,用iferror函数屏蔽错误值解决这个问题。

这样公式写下来比较繁琐,于是求助WPS社区群,看看大佬们有没有更好的方法。

3.新路大佬分享的公式:

=MATCH(MMULT(IFERROR(--C2:F14,0),ROW($1:$4)^0),SORT(MMULT(IFERROR(--C2:F14,0),ROW($1:$4)^0),,1),0)

这个公式研究了半天,终于弄明白啦,IFERROR(--C2:F14,0)这一步把文本屏蔽掉,替换成0,

MMULT(IFERROR(--C2:F14,0),ROW($1:$4)^0)这一步把每个人的总成绩求出来,

SORT(MMULT(IFERROR(--C2:F14,0),ROW($1:$4)^0),,1)按总成绩从低到高排序。

最后用match函数匹配位置:MATCH(MMULT(IFERROR(--C2:F14,0),ROW($1:$4)^0),SORT(MMULT(IFERROR(--C2:F14,0),ROW($1:$4)^0),,1),0)

动图如下:

4.Boyuan大佬的分享:=LET(s,BYROW(C2:F14,SUM),m,SMALL(s,SEQUENCE(ROWS(s))),XMATCH(s,m)),

这个公式我勉强能看明白,给大家讲不清楚。动图如下:

5.根据两位大佬的分享,想到这个公式:=MATCH(BYROW(C2:F14,SUM),SORT(BYROW(C2:F14,SUM),1,1),0)

对于这个问题,大家还有更好的解决方法吗?欢迎留言分享!

我是墨云轩,热衷分享wps办公小技巧,边学习,边分享,每天进步一点点!感谢你的阅读!

wps版本如下图:

河北省
浏览 299
2
25
分享
25 +1
8
2 +1
全部评论 8
 
亂雲飛渡
学习了
· 广东省
回复
 
王仕琼
· 广东省
回复
 
卡皮巴拉
· 上海
回复
 
X
👍🏻👍🏻👍🏻
· 河北省
回复
 
微信用户
讲的太好了
· 河北省
回复
 
经历失望变黑子
额 才看到居然是活动赛事类别。。。。看来我也要发帖子了竞争好激烈。然后那个题我主要是想的较老的函数一样可以做。byrow等新函数确实也有自己的优势。
· 重庆
回复
经历失望变黑子
LET(s,BYROW(C2:F14,SUM),m,SMALL(s,SEQUENCE(ROWS(s))),XMATCH(s,m)) 他这个其实就是small 替代了sort 其他的和你写的应该差不太多逻辑
· 重庆
回复