ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[函数讨论系列4] RANK()函数的三维引用的规则及限制

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 09:12 | 显示全部楼层
以下是引用gvntw在2005-4-27 8:54:00的发言: 试了一下,rank()第2个参数调用内存数组出错。

我昨天晚上就是在研究这个话题.的确是出错了.

不知下面的用法各位怎么看

0ImlMrkU.rar (3 KB, 下载次数: 146)

TA的精华主题

TA的得分主题

发表于 2005-4-27 09:16 | 显示全部楼层
以下是引用glober609在2005-4-27 9:08:00的发言:

方法二:先排序

=RANK(C2,OFFSET($A$1,MATCH(A2,$A$2:$A$20,0),2,COUNTIF($A$2:$A$21,A2),1))

版主的方法我想了想,感觉不可? offset函数返回的是一个连续区域,如何能返回一个不连续的区域,如果能这个问题应该就可以解了!

能否用一个offset分别返回各学校所在区域,不连续的?

关注,但我估计无法实现。

=RANK(C14,$C$2:$C$20)-COUNTIF($A$2:A13,"<>"&A14)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 09:22 | 显示全部楼层
以下是引用glober609在2005-4-27 9:08:00的发言:

方法二:先排序

=RANK(C2,OFFSET($A$1,MATCH(A2,$A$2:$A$20,0),2,COUNTIF($A$2:$A$21,A2),1))

版主的方法我想了想,感觉不可? offset函数返回的是一个连续区域,如何能返回一个不连续的区域,如果能这个问题应该就可以解了!

能否用一个offset分别返回各学校所在区域,不连续的?

是的,如果排序是可以这样用RANK(),但是我在附件里说了,不能用排序的方法

如果作为一个问题来解的话,这个用法是不错的选择.

TA的精华主题

TA的得分主题

发表于 2005-4-27 09:23 | 显示全部楼层
以下是引用风中飘雪在2005-4-27 9:16:00的发言: >

关注,但我估计无法实现。

=RANK(C14,$C$2:$C$20)-COUNTIF($A$2:A13,"<>"&A14)

这个我试了一下,好像有点问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 09:23 | 显示全部楼层
以下是引用gvntw在2005-4-27 8:36:00的发言:

我都是这么写的=SUM(($A$2:$A$20=A2)*($C$2:$C$20>=C2))

支持两位再想其他方法。

如果有两个100分的话,就为2,有点不符合中国式的排名方法

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 09:24 | 显示全部楼层
以下是引用apolloh在2005-4-27 9:23:00的发言:

这个我试了一下,好像有点问题

老兄看了我新上传的附件吗?

TA的精华主题

TA的得分主题

发表于 2005-4-27 09:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用yigepure在2005-4-27 9:24:00的发言: > 老兄看了我新上传的附件吗?

看了,D、E、F、G列应该都出错了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 09:32 | 显示全部楼层
以下是引用apolloh在2005-4-27 9:27:00的发言: ?

看了,D、E、F、G列应该都出错了。

E/F列应该没有错吧:)

TA的精华主题

TA的得分主题

发表于 2005-4-27 09:35 | 显示全部楼层

返回一个数字在数字列表中的排位。数字的排位是其大小与列表中其他值的比值(如果列表已排过序,则数字的排位就是它当前的位置)。

语法

RANK(number,ref,order)

Number 为需要找到排位的数字。

Ref 为数字列表数组或对数字列表的引用。Ref 中的非数值型参数将被忽略。

Order 为一数字,指明排位的方式。

如果 order 为 0(零)或省略,Microsoft Excel 对数字的排位是基于 ref 为按照降序排列的列表。 如果 order 不为零,Microsoft Excel 对数字的排位是基于 ref 为按照升序排列的列表。

说明

函数 RANK 对重复数的排位相同。但重复数的存在将影响后续数值的排位。例如,在一列按升序排列的整数中,如果整数 10 出现两次,其排位为 5,则 11 的排位为 7(没有排位为 6 的数值)。

由于某些原因,用户可能使用考虑重复数字的排位定义。在前面的示例中,用户可能要将整数 10 的排位改为 5.5。这可通过将下列修正因素添加到按排位返回的值来实现。该修正因素对于按照升序计算排位(顺序 = 非零值)或按照降序计算排位(顺序 = 0 或被忽略)的情况都是正确的。

重复数排位的修正因素 =[COUNT(ref) + 1 – RANK(number, ref, 0) – RANK(number, ref, 1)]/2。

在下列示例中,RANK(A2,A1:A5,1) 等于 3。修正因素是 (5 + 1 – 2 – 3)/2 = 0.5,考虑重复数排位的修改排位是 3 + 0.5 = 3.5。如果数字仅在 ref 出现一次,由于不必调整 RANK,因此修正因素为 0。

从语法上看,ref可以是数组或是引用,这说得并不符合chenjun版主之前提到的只能是引用的说法,但实际上好像并没有支持数组。

[此贴子已经被作者于2005-4-27 9:35:21编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-27 09:38 | 显示全部楼层
以下是引用yigepure在2005-4-27 9:32:00的发言: > E/F列应该没有错吧:)

怎么才算对阿?

[讨论]RANK()函数的三维引用的规则及限制

[讨论]RANK()函数的三维引用的规则及限制
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 05:02 , Processed in 0.033047 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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