ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 329|回复: 19

[求助] 成绩排名问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-11 22:54 | 显示全部楼层 |阅读模式
求助老师关于成绩排名问题

成绩排名.zip

12.15 KB, 下载次数: 27

求助成绩排名问题

TA的精华主题

TA的得分主题

发表于 2024-11-11 23:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=LET(f,LAMBDA(x,TAKE(SORTBY(HSTACK($B$4:$B$87,$A$4:$A$87,FILTER($C$4:$K$87,$C$3:$K$3=x)),CHOOSECOLS(HSTACK($B$4:$B$87,$A$4:$A$87,FILTER($C$4:$K$87,$C$3:$K$3=x)),3),-1),10)),HSTACK(f(P2),f(S2)))

TA的精华主题

TA的得分主题

发表于 2024-11-11 23:35 | 显示全部楼层
考虑到有名次相同,采用中国式排名(重复排名不占名次),不同科目需要有自己的排名次序,数学增加一列。
  1. =LET(t,MATCH(C4:C87,SORT(UNIQUE(C4:C87),,-1),),SORT(FILTER(HSTACK(t,B4:B87,A4:A87,C4:C87),MATCH(C4:C87,SORT(UNIQUE(C4:C87),,-1),)<10),1,1))
复制代码

  1. =LET(t,MATCH(D4:D87,SORT(UNIQUE(D4:D87),,-1),),SORT(FILTER(HSTACK(t,B4:B87,A4:A87,D4:D87),MATCH(D4:D87,SORT(UNIQUE(D4:D87),,-1),)<10),1,1))
复制代码
微信图片_20241111233333.png
微信图片_20241111233359.png

TA的精华主题

TA的得分主题

发表于 2024-11-12 00:24 | 显示全部楼层
=IFNA(DROP(REDUCE("",C3:E3,LAMBDA(x,y,LET(a,OFFSET(y,1,,84),b,RANK(a,a),HSTACK(x,SORT(FILTER(HSTACK(B4:B87,A4:A87,a),b<=10),3,-1))))),,1),"")
ff690573499acf74ceb9e076a768436a.png

TA的精华主题

TA的得分主题

发表于 2024-11-12 07:47 | 显示全部楼层
如果第10名的成绩一样,怎么取舍?
如果就是取10名,那就还要加上其他条件进行取舍,比如,按总分
或者扩大名次范围,比如:第10名有两个,那就取前11名

TA的精华主题

TA的得分主题

发表于 2024-11-12 08:01 | 显示全部楼层
mykitami 发表于 2024-11-12 07:47
如果第10名的成绩一样,怎么取舍?
如果就是取10名,那就还要加上其他条件进行取舍,比如,按总分
或者扩 ...

P4
  1. =LET(a,XLOOKUP(P2,$C$3:$K$3,$C$4:$K$87),SORT(FILTER(HSTACK($B$4:$B$87,$A$4:$A$87,a),a>=LARGE(a,10)),3,-1))
复制代码

S4复制粘贴

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 09:50 | 显示全部楼层
edwin11891 发表于 2024-11-11 23:35
考虑到有名次相同,采用中国式排名(重复排名不占名次),不同科目需要有自己的排名次序,数学增加一列。
...

非常感谢老师,您能把文件发给我吗?我学习一下,再次感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 09:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
992146 发表于 2024-11-12 00:24
=IFNA(DROP(REDUCE("",C3:E3,LAMBDA(x,y,LET(a,OFFSET(y,1,,84),b,RANK(a,a),HSTACK(x,SORT(FILTER(HSTACK( ...

非常感谢老师,您能把文件发给我吗?我学习一下,再次感谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 09:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
leepoison 发表于 2024-11-11 23:30
=LET(f,LAMBDA(x,TAKE(SORTBY(HSTACK($B$4:$B$87,$A$4:$A$87,FILTER($C$4:$K$87,$C$3:$K$3=x)),CHOOSECOLS( ...

非常感谢老师,这个公式我应该放在哪里?您能把文件发给我学习一下吗?再次感谢

TA的精华主题

TA的得分主题

发表于 2024-11-12 10:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =LET(T,SORT(HSTACK($B$4:$B$87,$A$4:$A$87,CHOOSECOLS($C$4:$K$87,MATCH($P$2,$C$3:$K$3,0))),3,-1),
  2. _T,CHOOSECOLS(T,3),_X,UNIQUE(_T),_Y,DROP(REDUCE("",_T,LAMBDA(X,Y,VSTACK(X,SUM(N(_X>Y))+1))),1),HSTACK(TEXTJOIN(",",TRUE,FILTER(CHOOSECOLS(T,1),_Y=O4)),XLOOKUP(O4,_Y,$A$4:$A$87),XLOOKUP(O4,_Y,_T)))
复制代码
把同分数的合并在一个单元格了  供参考
1731379645405.jpg
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 01:04 , Processed in 0.048174 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表