设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel函数公式] countif是不是易失函数?

[复制链接]
跳转到指定楼层
楼主
发表于 2016-8-24 09:07:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用offset在一张数据透视表中定位并通过查找函数返回不同项目对应的值.由于所有项目的值均在一张数据透视表中,因此我使用countif来返回针对每个项目在vlookup中所查找的行数范围.由于数据量较大导致速度处理很慢,请问有无办法解决?谢谢!
我记得在实战技巧精粹中说countif是易失函数,也许我记错了?



没有记错!

关于Sumif、Countif是否易失性函数,在《精粹》读者版有勘误,有待进一步讨论。
但总归来说,这两个函数是高能低效的函数,主要与其“遍历”式计算方法有关,并非与其易失性有关。
具体你的附件没传,无从得知你是否因为Countif导致慢速。更无从得知是否有必要用Countif。








首先,COUNTIF()不是易失函数。
易失函数的基本特征是:打开包含易失函数的工作簿,不做任何改动,立即关闭,会提示“是否保存修改”
比如,在一个工作簿中写个公式=RAND(),保存,关闭,再打开,不做任何改动,立即关闭,会提示“是否保存修改”——这说明,RAND()是易失函数
但,COUNTIF()不会这样。
其次,COUNIF()函数是否能用其他的函数来代替,要看具体情况。有些代替是好的,速度会快于COUNTIF,有些速度可能更慢;还有一些是根本无法代替的。





一般的公认SUMIF()因为其第3个参数简写时的不确定性,也认为是半易失性函数(或工作簿级易失性函数) 但我在实际运用时发觉SUMIF()和COUNTIF()也会因其它任意单元格的变动而重算,我个人认为也应该算是易失性函数,但只是我个人主观想法,不能做数。必经判定易失性函数的标准是“打开一个工作薄但不做任何更改就关闭时,是否要保存” 。



countif虽然不是易失函数,但是其引用外部工作簿的时候,如果外部工作簿没有打开,则无法返回正确的结果。类似的函数有countif ,  countifs , indirect , sumif , sumifs , offset . 这类函数有一个共性就是它们的参数引用只能是“区域”,而不可以是“数组”。就是说其参数必须指向工作表里面的具体单元格,不能是内存数组。




回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-7 07:39 , Processed in 0.177665 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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