上次分享了一个中国式分数排名计算https://bbs.iyunbiao.com/t-6610-1.html  。考虑到有些客户可能运用场景不一样,今天就再分享另外一个国际惯例的排名方式,先给他说明一下这两个排名的区别:例如:对数列{3,2,2,1}从大到小进行排名,按国际通行的惯例是{第一名,第二名,第二名,第四名},比如奥运会某场比赛出现并列银牌,则不发铜牌,并列是会占用一个名次。而按中国式排名,结果是{第一名,第二名,第二名,第三名}



1.因为我这边是使用单元格按钮单击事件做触发的,所以先要将计算排名数据项单元格右键设置成按钮。注:只有设置成单元格按钮才能触发填表公式的单元格按钮单击事件。




2.我们需要在数据表管理这边加两个隐藏的数据项分别是:存储当前排名,存储分数 。



3.我们在填表公式单元格按钮这边天就一个赋值公式,使用我们明细数据源,将明细的分数赋值给我们的存储分数数据项



4.用存储分数作为值变化数据项触发,首先先做一个最初的默认值"1"赋值给,存储当前排名。注:因为我们的最大排名他下在下一步公式是过滤不出数据,所以这里要给他另外写个赋值



5.下面的就是核心公式了,使用明细数据源,用: 本表单.明细.分数   >  本表单.存储分数 去进行比较,看明细分数大过当前分数有多少个,然后用"本表单.存储当前排名  + 1"  。注:"本表单.存储当前排名  + 1"就是大过一个排名就加1,那么我们的排名就是往后了



6.最后将运算的分数排名结果返回给到我们的分数明细表即可



7.效果图






+10
收藏
2 条回帖
黄磊云师2022-2-18 11:31:54
感谢楼主分享
+10
不懂VBA云侠2022-5-14 15:40:22
感谢分享
+10
需要登录后才可进行回复 登录

玩转云表从入门到精通
扫码添加微信立即领取

·云表创始人授课文件
·加入社群与培训学习
·切磋云表开发玩法

商务咨询:0756-3335860
客服咨询