分享

sumproduct公式逗号和星号怎样使用?看了这篇文章你就不会再用错

 我的人生宝库 2019-09-17

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

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

sumproduct公式逗号和星号怎样使用?看了这篇文章你就不会再用错

sumproduct公式逗号和星号怎样使用?看了这篇文章你就不会再用错

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

sumproduct公式逗号和星号怎样使用?看了这篇文章你就不会再用错

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

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

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

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

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

sumproduct公式逗号和星号怎样使用?看了这篇文章你就不会再用错

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

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

sumproduct公式逗号和星号怎样使用?看了这篇文章你就不会再用错

为什么使用乘号得到结果返回#!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函数就发挥了其特性, sumproduct函数将非数值型的数组元素作为0处理。这时X变成了0,所以结果是对的。所以使用逗号时,函数的容错能力更强。

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多