Sumif的这个特殊问题,会让计算速度变的特别慢!

我们,让Excel变简单

今天介绍Sumif函数的一种特殊情形下的速度问题。

在我们这个系列中,SUMIF的出镜率很高,主要是因为这是一个非常常用的函数。

先来看问题

我们的数据如下:

在区域B3:E10000中,数据如图所示,都是数据,没有公式

为了测试,我们在另一个Sheet中的区域B2:B33中,使用了SUMIF公式:

这个公式就是将第一张图片中的数据区域中的B列与H2单元格相比较,然后计算所有满足条件的E列的值。

问题是,当H2单元格输入“a"时,这29个公式的计算时间是0.06秒:

这是一个比较快的计算速度

当H2单元格输入"1"时,这29个公式的计算时间是1.07秒:

这是一个非常慢的速度

大家可以试一下,无论是输入数值1,还是输入文本1,都是一样的。

如果不引用单元格,而是将公式中的$H$2,直接换成"a",或者"1",结果也是一样的。

为什么会出现这种情况

造成这种现象的原因跟Excel内部实现SUMIF的方式有关,我们无从推测。但是造成这种现象的场景是确定的:当条件区域是文本类型为主,但是比较的值是数字时,就会导致SUMIF计算速度慢:

这个不仅是SUMIF函数,类似的COUNTIF,SUMIFS,COUNTIFS,AVERAGEIF,AVERAGEIFS都是这样的。

而如果反过来,添加区域是数值,而比较的条件无论是文本还是数值,计算速度都比较快。

如何解决

解决方法很简单,将条件从"1"变成"*1":

计算速度立即提升了15倍

或者,可以将公式改成:

SUMIF(Sheet1!$B$3:$B$10000,“*”&$H$2,Sheet1!$E$3:$E$10000)

结果是一样的。

好了,今天的分享就到这里了

关注本公众号,点击底部菜单“联系客服”,与客服取得联系,索取“计算性能分析—sumif等函数的特殊状况”案例文件

END
关注ExcelEasy
关于Excel的一切问题,你都可以在这里找到答案
(0)

相关推荐