sumproduct公式逗号和乘号(*星号)怎样使用?数组公式中的多条件构造方法 图文

2020年5月12日10:04:38sumproduct公式逗号和乘号(*星号)怎样使用?数组公式中的多条件构造方法 图文已关闭评论 1,885 views
微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com

经常性的在公式中会用到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,所以结果是对的。所以使用逗号时,函数的容错能力更强。

 

本文已取的原作者授权 禁止转载 原文链接为https://www.toutiao.com/item/6736871212137316876/

表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页