ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] RANK求排名时,怎么加个判断函数呢?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-4-29 17:38 | 显示全部楼层 |阅读模式
QQ截图20210429173712.png


求排名.rar (17.31 KB, 下载次数: 8)

请各位帮我修改下公式  谢谢!

TA的精华主题

TA的得分主题

发表于 2021-4-29 20:30 | 显示全部楼层
=SUMPRODUCT((INT($A$4:$A$14/100)=INT(A4/100))*($D$4:$D$14>D4))+1
下拉。
===============下面是公式的原理===============
原理以A4所在的行为例进行叙述,其他的行同理。
您的表是用101,102这样的三位数字表示年级和班级的,且最高位数表示年级。因此,取年级的本质是取这个数除以100的商。比如101/100商1,201/100商2,就得到了您想要的年级。在Excel中这个运算是用用INT函数来进行的。
INT($A$4:$A$14/100)这部分是表示对A4:A14这个区域中,每一个表示年级和班级的三位数求它除以100的商,即取年级的值,值域为{1,2,3,4,5,6}。后面INT(A4/100)表示对A4中的三位数求这个商,结果是1,表示A4所在行对应的成绩是1年级的。其他行同理。
两部分之间用一个等号连接,表示判定是不是同一个年级。返回的是一个值域为{TRUE,FALSE}的数组,TRUE即表示是同一个年级,在计算中视为1;FALSE表示不是同一个年级,在计算中视为0。
$D$4:$D$14>D4表示判定D4:D14范围内,每一个成绩是不是比D4大的。是的话返回TRUE,计算时视为1;不是的话,返回FALSE,计算时视为0。显然,这两部分的数组通过相乘后再相加的运算就得到了:求同一年级内有多少个成绩比待判定的成绩好。最高的成绩,其值为0。
但名次是从第1位开始排的,所以在整个公式后面加1,表示“如果有0个成绩比它高,则它排第1位”。其他名次同理。
难点在于:用INT函数取年级的思路不容易想到。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-4-29 20:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求排名.rar (16.29 KB, 下载次数: 4)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-4-29 20:45 | 显示全部楼层
本帖最后由 cttz 于 2021-4-29 21:43 编辑

题主是教师吧,SUMPRODUCT的排名功能,在本论坛中有很多叙述,另有一个【教育专用贴】讲到了所有教育领域可能出现的EXCEL问题,您可以查看一下。

求排名.rar

16.29 KB, 下载次数: 11

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-29 21:34 | 显示全部楼层
cttz 发表于 2021-4-29 20:45
=SUMPRODUCT((INT($A$4:$A$14/100)=INT(A4/100))*($D$4:$D$14>D4))+1
下拉
==================下面是公式 ...

非常感谢,这2个函数正好我也在用。我也是想怎么取左边第一位下手,最后只会加个辅助列白色字体隐藏。但是没想到你的这么巧妙,求整数就搞定了。谢谢大神啦

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-29 22:13 | 显示全部楼层
cttz 发表于 2021-4-29 20:45
题主是教师吧,SUMPRODUCT的排名功能,在本论坛中有很多叙述,另有一个【教育专用贴】讲到了所有教育领域可 ...

是的 求老哥给个教育专用贴的地址,谢谢

TA的精华主题

TA的得分主题

发表于 2021-4-29 22:53 | 显示全部楼层
boyljd 发表于 2021-4-29 22:13
是的 求老哥给个教育专用贴的地址,谢谢

教育应用贴(分班、统计、课表等)1142楼添加运动会成绩统计表20121215
http://club.excelhome.net/thread-589978-1-1.html
(出处: ExcelHome技术论坛)

TA的精华主题

TA的得分主题

发表于 2021-4-30 11:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=SUMPRODUCT((LEFT(A$4:A$14)=LEFT(A4))*(D$4:D$14>D4))+1

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-4-30 23:54 | 显示全部楼层
hcm19522 发表于 2021-4-30 11:14
=SUMPRODUCT((LEFT(A$4:A$14)=LEFT(A4))*(D$4:D$14>D4))+1

这个公式在有10~12年级(高一到高三)的时候,就不那么适用了

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-5-1 01:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hcm19522 发表于 2021-4-30 11:14
=SUMPRODUCT((LEFT(A$4:A$14)=LEFT(A4))*(D$4:D$14>D4))+1

取左边和除法求整,那个更不占内存,更好一点?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-9 14:13 , Processed in 0.030797 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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