sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)

经常性的在公式中会用到sumproduct(()*())与sumproduct((),())这样两种方法,但是却不是很能理解其中乘号跟逗号的区别,为什么有时候用逗号结果正确,用乘号却是错误?

一般情况下,sumproduct函数中各个参数之间使用逗号或者乘号效果是一样的,但是,有种特殊的情况需要留意,数据源中存在一些特殊数据的时候,可能会无法计算。

sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)(1)

sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)(2)

在使用乘号的情况之下,sumproduct函数不会自动将文本做0处理,所以F3单元格无法得到正确的结果:300。

sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)(3)

我们先来理解一下这个公式;

①判断A2:A8区域的值,是否等于F2单元格,返回TRUE/FALSE;

②判断B2:B8区域的值,是否等于G2单元格,返回TRUE/FALSE;

③然后再通过返回的逻辑值相乘得出结果。

判断A2:A8区域的值与判断B2:B8区域的值,会返回{0;0;1;0;0;0;0},如下图所示。

sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)(4)

那么,回到最初的问题,对于数据源有字母、文本之类的特殊内容。为什么各参数之间用乘号是错的,用逗号就能返回正确的结果?

首先,我们来看看sumproduct用乘号的运算过程,

sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)(5)

为什么使用乘号得到结果返回#!Value,原因出在sumproduct函数不直接支持逻辑值。因为sumproduct函数是数组运算,所以他的要求比较严格,不至于像其他函数一样,可以将逻辑值做0与1处理,所以他认识的TRUE与FALSE叫做文本。sumproduct函数把X这个值与前面的数值相乘,这样的结果是#!VALUE,而公式中有错误,sumproduct就返回错误。

那么,sumproduct函数中用逗号的运算方式,就有点不一样了,各参数相乘再相加,如公式=sumproduct({0,0,1,0,0,0,0},{100,200,300,400,0,600,700}),是先相乘0*100,0*200,1*300,0*400,0*0,0*600,0*700,再相加0 0 300 0 0 0 0,结果为300,如下图所示。

sumproduct公式汇总(sumproduct公式逗号和星号一直分不清)(6)

而用逗号时,sumproduct函数就发挥了其特性, sumproduct函数将非数值型的数组元素作为0处理。这时X变成了0,所以结果是对的。所以使用逗号时,函数的容错能力更强。

关于公式中逗号和乘号的用法,相信大家看了本篇教程已经有所启发,转发和点赞本篇文章,给小编鼓励支持下吧!

如您遇到任何问题,可以在评论区留言哦~

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页