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 12:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用yigepure在2005-4-27 12:41:00的发言:

关于SUBTOTAL()帮助中有错误

如果所指定的某一引用为三维引用,函数 SUBTOTAL 将返回错误值 #VALUE!

不会吧,难道这贴你没看?subtotal的三维引用

http://club.excelhome.net/viewthread.php?tid=91087

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 12:58 | 显示全部楼层
以下是引用apolloh在2005-4-27 12:53:00的发言: >

不会吧,难道这贴你没看?subtotal的三维引用

http://club.excelhome.net/viewthread.php?tid=91087

呵呵,会错意了.我是说帮助中给出的解释是错误的.

另RANK()的使用与SUBTOTAL不同(ROWS,COLS上)

TA的精华主题

TA的得分主题

发表于 2005-4-27 13:20 | 显示全部楼层
以下是引用yigepure在2005-4-27 9:12:00的发言:

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

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

是不是理解分析有误?你上面附件中D列的公式 {=RANK(A2:A20,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,))} 是这个含义: OFFSET函数依次返回这样的区域引用A2:A20、A3:A21、......、A20:A38,然后RANK再依次对A2:A20中的每一个在对应的区域中求值,依次返回RANK(A2,A2:A20)、RANK(A3,A3:A21)、......、RANK(A20,A20:A38),请检查每一个公式,返回的结果是正确的。
[此贴子已经被作者于2005-4-27 13:42:43编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 13:39 | 显示全部楼层
以下是引用chenjun在2005-4-27 13:20:00的发言: 是不是理解分析有误?你上面附件中E列的公式 {=RANK(A2:A20,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,))} 是这个含义: OFFSET函数依次返回这样的区域引用A2:A20、A3:A21、......、A20:A38,然后RANK再依次对A2:A20中的每一个在对应的区域中求值,依次返回RANK(A2,A2:A20)、RANK(A3,A3:A21)、......、RANK(A20,A20:A38),请检查每一个公式,返回的结果是正确的。

还是老大看得仔细.(这正是我的目的,其实这正是我提出的ROWS的意思,)

这个是D列的公式=RANK(A2:A20,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,))

当然其结果是错误的.

但是如果使用普通数组其结果是正确的如B列的公式

=RANK(A2,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,))

D列与B列对比一下就会发现.

但是为什么普通数组就会正确.同时REFERENCE的引用区域如果为单一的单元格也是错误的.

以我昨天晚上的理解.REFERENCE是引用区域要与最后形成的数据区域相当.这样在普通数组中.通过ROW()产生的区域又会与总的区域相交.(有点隐含交叉的味道)得到一组数.但是在内存数组中却是出错.也就是因为OFFSET的生成数组在内存中与普通的数组的不同.(这是我个人的想法)

但如果不管是普通数组还是内存数组如果用OFFSET()或INDIRECT()它们的区域都不能写成单一个数组.如OFFSET(a1,ROW(a2:a20)-1,)或INDIRECT("a"&ROW(a2:a20)-1)这样,否则全部出错.

[此贴子已经被作者于2005-4-27 13:42:23编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-27 13:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=RANK(A2,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,)) 我再晕一把! 上面写在一个单元格中的公式实际返回的是一个数组,对应A2在不同区域中的排位,而正好你看到的是数组的第1个值,公式本身并没有问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 13:58 | 显示全部楼层
以下是引用chenjun在2005-4-27 13:45:00的发言: =RANK(A2,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,)) 我再晕一把! 上面写在一个单元格中的公式实际返回的是一个数组,对应A2在不同区域中的排位,而正好你看到的是数组的第1个值,公式本身并没有问题。

的确如此.是我理解错了[em06]

TA的精华主题

TA的得分主题

发表于 2005-4-27 13:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用chenjun在2005-4-27 13:45:00的发言: =RANK(A2,OFFSET($A$2:$A$20,ROW($A$2:$A$20)-2,)) 我再晕一把! 上面写在一个单元格中的公式实际返回的是一个数组,对应A2在不同区域中的排位,而正好你看到的是数组的第1个值,公式本身并没有问题。

老大,做一做2楼附件里的题看看行不?

[此贴子已经被作者于2005-4-27 13:59:11编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 14:45 | 显示全部楼层

但是如何使用RANK()进行三维引用呢?这样看来ROWS,CLOS能行吗?

请老大做做二楼的附件.可以吗?

TA的精华主题

TA的得分主题

发表于 2005-4-27 14:48 | 显示全部楼层

二楼的附件我做了一下,两种情况下都会出错。

ZUfW086q.rar (3.83 KB, 下载次数: 40)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-27 14:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用apolloh在2005-4-27 14:48:00的发言:

二楼的附件我做了一下,两种情况下都会出错。

与我昨晚研究的结果相同.所以才发这个帖来问一下

如果说排一下序.使用OFFSET(INDIRECT("c1:C"&COUNTIF(,C2)),)又会正确.

当然了,排序以后也不必使用它了.

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 04:19 , Processed in 0.041240 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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