在学习工作的时候,用sumproduct函数不太多,也可能是我对这个函数压根就不太懂,不太了解他的用法,所以在用起来的时候就想不起来它,但是在看别人的公式里有它的身影,而且前面还包含二个'--',看起来很高大上的样子,看不懂事什么意思,就想把它的作用给弄懂。
这个函数的具体用法就不怎么说了,主要把心中的疑问,这2个符号“--”起什么作用,下面列1个例子:
假设您在A2:B6中有一些订单数据,A列是国家缩写,B列是销售额
A
B
1
State
Sales
2
UT
75
3
CO
100
4
TX
125
5
CO
125
6
TX
150
看下这个公式:
=SUMPRODUCT(--(A2:A6='TX'),B2:B6),这个公式代表的意思就是汇总TX这个国家的总销售额,得出来的数据就是275,如果你头一次看到这个公式也有点蒙,这怎么会有2个“减号”那,令人费解,是不是马上想一探究竟。
其实这是一个常用的技巧,用于更高级的Excel公式,将TRUE和FALSE值强制为1和0,看见没,更高级的公式,原来SUMPRODUCT是个高级货。
对于上面的示例,这里是由SUMPRODUCT首先处理的两个数组的虚拟表示:
array1
array2
FALSE
75
FALSE
100
TRUE
125
FALSE
125
TRUE
150
看出来为啥有FALSE和TRUE没,TURE的位置正好是怎么要就TX这个国家的位置,A2:A6='TX',不是这个条件的都是FALSE,每个数组有5个项目。 第一个数组包含由表达式A2:A6 =“TX”产生的TRUE / FALSE值,第二个数组是B2:B6的内容。 第一个数组中的每个项目都将乘以第二个数组中的相应项目。 但是,在当前状态下,SUMPRODUCT的结果将为零,因为TRUE和FALSE值将被视为零,如果没有负号,得出来的结果就是“0”,所以我们需要array1中的项是数字的 ,他们需要“强制”为1和0。
通过使用双负 - (双一元,对于技术类型),我们能够将TRUE / FALSE强制为数值1和0,如下面的虚拟表示所示。 最后一列“Product”表示将两个数组相乘的结果。 求和结果275是SUMPRODUCT返回的值
array1
array2
Product
0
*
75
=
0
0
*
100
=
0
1
*
125
=
125
0
*
125
=
0
1
*
150
=
150
Sum
275
通过这个例子大家知道双负是怎么一回事了把,它的作用把逻辑中TRUE和FALSE变成'1'和“0”来参与运算,要不然运算结果就会出错。
PS:大家不会说,你这是疯狂VBA啊,为什么不是VBA,而是函数啊,我这里说一下,以后的学习分享主要以VBA为主,但是不排除在学习过程中遇到的疑问,同大家分享,都是知识,学一点不压身。