SUMPRODUCT多条件求和为什么会出错?

前言

SUMPRODCUT函数在前面已经讲过,链接如下:

SUMPRODUCT函数的妙用

sumproduct函数竟然不支持通配符

如果你看了上面的两篇文章,你就知道SUMPRODUCT函数是多条件统计和求和的万能函数,常用的方法是

多条件统计:SUMPRODCUT((条件1)*(条件2)*(条件3)…. *(条件n))

多条件求和:SUMPRODCUT((条件1)*(条件2)*(条件3)…. *(条件n)*(求和区域))

通常情况下求和区域都是数值,公式本身没有问题,但是当求和区域出现文本时,错误就发生了,下面请看:

当对不同项目的上下船体重量求和时,由于重量一列中出现了文本,求和的结果全部为错误值。

1原因分析

为什么会出现错误呢?我们点击公式编辑栏fx,看一下具体计算过程:

发现有文本出现的地方,出现了#VALUE!,所以SUMPRODCUT在求和时出现了错误。

2追根溯源

我们再回到SUMPRODUCT的原始用法

SUMPRODUCT(数组1,数组2,数组3,数组n)

数组参数必须具有相同的维数,否则,函数SUMPRODUCT 将返回错误值 #VALUE!。

函数 SUMPRODUCT 将非数值型的数组元素作为 0 处理。

注意上面一句话,SUMPRODUCT将非数值型数组元素作为0处理,这也是多条件求或统计时不能直接用逗号隔开的原因,因为条件不管为真还是假时,都会作为0处理,所以结果为零,因此我们把逗号改为乘号,将逻辑值强制转换成1或0,从而实现我们多条件统计和求和的目的。

3解决思路

那么现在我们要将这两种方法结合起来了,条件用乘号实现强制将逻辑转化成数值,后面有逗号跟求和区域,实现把文本转换为0的目的。

SUMPRODUCT((条件1)*(条件2)*(条件3)…. *(条件n),(求和区域))

知识点

sumproduct几种常用技能

数组乘积之和:SUMPRODUCT(数组1,数组2,数组3,数组n)

多条件统计:SUMPRODCUT((条件1)*(条件2)*(条件3)…. *(条件n))

多条件求和:SUMPRODCUT((条件1)*(条件2)*(条件3)…. *(条件n)*(求和区域))

多条件求和时出现文本:SUMPRODUCT((条件1)*(条件2)*(条件3)…. *(条件n),(求和区域))

END

(0)

相关推荐