ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[函数用法讨论系列16] Countif函数内部参数隐含交叉计算问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-1-10 10:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用[I]zhaxinbo[/I]在2006-1-10 10:37:54的发言:[BR]

{=COUNTIF(OFFSET($A$115,,,ROW(data5)-ROW(A$114)),data5)}

=COUNTIF(A$135:A135,A135)

远算机理不一样吧?只是结果一样而已吧?GVNTW版主下面有解释,这两个函数的运算结果是一样的,但上面的函数{COUNTIF(RANGE A:RANGE B)}怎么理解?

不同之处在于第一个公式返回一个计算过后得到的内存数组 (computed array),结果可以作为一个整体可以直接套入其他函数作为参数,或定义名称作为图表的系列数据源。 第二个公式,分别返回多个单值,不能作为整体直接参与运算。只能借助于辅助单元格来显示和存储计算过程,才能参与下一步的运算。

TA的精华主题

TA的得分主题

发表于 2006-1-10 10:57 | 显示全部楼层
以下是引用[I]zhaxinbo[/I]在2006-1-10 10:31:03的发言:[BR]
此题在出题时已经不考虑多次出现在不连续区域的情况了。如果需要,可以再次求不重复值,不过不同同一个问题了:) 其他方法还没想过。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-10 10:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
那我在7楼那个问题怎么解释呢?如果重复的数据不连续则不能返回正确结果,有什么办法可以解决吗?COUNTIF(RANGE A ,RANGE B)还有什么隐含交叉吧?似乎很难懂!慢慢学习中..

TA的精华主题

TA的得分主题

发表于 2006-1-10 11:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用[I]zhaxinbo[/I]在2006-1-10 10:57:54的发言:
那我在7楼那个问题怎么解释呢?如果重复的数据不连续则不能返回正确结果,有什么办法可以解决吗?COUNTIF(RANGE A ,RANGE B)还有什么隐含交叉吧?似乎很难懂!慢慢学习中..
这里存在交叉引用问题(此部分已证明有误,请大家往下读),关于多维数组的讨论请参见,全部读完应该能够明白了。 [浅谈引用函数的产生的多维引用及其应用] http://club.excelhome.net/dispbbs.asp?BoardID=3&ID=98081
[此贴子已经被作者于2006-1-22 14:22:08编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-10 11:14 | 显示全部楼层
我在问个笨问题GVNTW提到的OFFSET($A$115,,,ROW(data5)-ROW(A$114)返回的数组在一维的EXCEL中能表达出来吗?{甲;甲乙;甲乙丙;甲乙丙丁;...}

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-15 17:24 | 显示全部楼层
apolloh大师,我拜读了您的力作,觉得疑云又起啊,COUNTIF(动态数组,原数组)。举个简单例子,如果A1=1,A2=2,A3=2公式相当于{=COUNTIF(INDIRECT({"A1:A1";"A1:A2";"A1:A3"}),A1:A3)},那么我在连续的三个单元格内输入=COUNTIF($A$1:A1,$A$1:$A$3)=COUNTIF($A$1:A2,$A$1:$A$3)=COUNTIF($A$1:A3,$A$1:$A$3)所得的效果应该就是例子中所表示的结果,在我输入的这三个函数中第一个返回的是{1,0,0}第二个返回的是{1,1,1}第三个返回的是{1,2,2}若按隐含的交叉,所取数组按单元格取值正好是{1,1,2},与所谓的内存数组返回值吻合,什么原因呢?难道只是巧合?

TA的精华主题

TA的得分主题

发表于 2006-1-15 17:42 | 显示全部楼层

之前没有注意到,的确是存在隐含交叉的问题,有点类似较早的一个讨论贴sum的产生三维引用的问题http://club.excelhome.net/dispbbs.asp?boardID=3&ID=94758。 谢谢你的发现[em17]

[此贴子已经被作者于2006-1-15 17:51:58编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-15 17:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哦,要积分有什么用啊?

TA的精华主题

TA的得分主题

发表于 2006-1-15 17:45 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-15 17:45 | 显示全部楼层
还有,我发现OFFSET的三位引用三维的比较有用,四维的或者更高的哪能用到啊?能解决什么情况下的实际问题呢?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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