sql取逗号隔开的值_想学好Excel函数?你得先搞懂函数公式中逗号和星号的区别...

关于SUMPRODUCT函数,想必大家都是熟悉不过的,但网上对于这个函数的详细教程比较少,特别是公式里面的星号(*)和逗号(,),很多人都是分不清的,什么时候用逗号,什么时候用星号,很多人都不懂,所以今天的教程会跟大家详细的讲解SUMPRODUCT函数,让每一个人都能看懂。

一、SUMPRODUCT函数的功能。

从字面上来看,SUMPRODUCT由2个英文单词组成。SUM是和,PRODUCT是积,所以就是乘积之和的意思。

官方给的定义是:SUMPRODUCT函数是在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。

二、SUMPRODUCT函数的语法。

SUMPRODUCT(array1, [array2], [array3], ...)。

其中,array1, [array2], [array3]为数组参数。

注意:

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

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

(3)如果只有1个数组,就直接对这个数组里面的所有值相加,然后返回相加的结果。

三、单条件计数。

实例:统计下图中有多少个“面膜”产品。

e0fbee0197c9d85ea7d5639027a9541d.png

具体操作步骤如下:

1、选中H4单元格 -- 在编辑栏中输入公式“=SUMPRODUCT(--($D$3:$D$11=G4))” -- 按回车键回车即可。

0b9fe0b4bdf8f105e68a7c3e15b75379.png

2、动图演示如下。

109b8bfd528e531da0a86c3de7d5b5fc.gif

3、公式解析。

(1)$D$3:$D$11=G4:

D3:D11单元格区域是一个数组,判断数组中的每一项是否跟G4单元格的内容“面膜”相等,如果相等,返回TRUE,否则,返回FALSE。此时公式得到的是一组逻辑值数组{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}。

70e63554384cb21e155bb1882d321f9f.png

(2)--($D$3:$D$11=G4):

在SUMPRODUCT函数中,逻辑值TRUE和FALSE会直接被当做0来处理,所以在前面加上两个负号“--”将逻辑值TRUE转成1,将逻辑值FALSE转成0。此时公式得到的是一组1和0数组{1;0;0;1;0;0;0;0;0}。

6365a7624982e969ce02f09856520b0a.png

(3)公式的计算过程如下图。

26f9680b5d9067069aa14e4643171d32.png

四、单条件求和。

实例:统计下图中“面膜”产品的销售额总和。

具体操作步骤如下:

1、选中H4单元格 -- 在编辑栏中输入公式“=SUMPRODUCT(--($D$3:$D$11=G4),E3:E11)” -- 按回车键回车即可。

b31a30f114f89fbda0468fadd86df2de.png

2、动图演示如下。

6f2324cd268434dc67246daf92ba2f7a.gif

3、公式解析。

(1)--($D$3:$D$11=G4):

D3:D11单元格区域是一个数组,判断数组中的每一项是否跟G4单元格的内容“面膜”相等,如果相等,返回TRUE,否则,返回FALSE。此时公式得到的是一组逻辑值数组{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}。在SUMPRODUCT函数中,逻辑值TRUE和FALSE会直接被当做0来处理,所以在前面加上两个负号“--”将逻辑值TRUE转成1,将逻辑值FALSE转成0。此时公式得到的是一组1和0数组{1;0;0;1;0;0;0;0;0}。

15376ac9df047b6476ba34981d2f4347.png

(2)公式的计算过程如下图。

504cb78053d2044196798c79c0ccf0dd.png

五、多条件求和。

实例:统计下图中姓名为“李明芳”,产品为“面膜”的销售额。

d24d329d2ad14b6c0c88b1aa46a71a29.png

具体操作步骤如下:

1、选中I4单元格 -- 在编辑栏中输入公式“=SUMPRODUCT(--($C$3:$C$11=G4),--($D$3:$D$11=H4),$E$3:$E$11)”-- 按回车键回车即可。

842c2678bcf3e9d68b731ff86fec6d56.png

2、动图演示如下。

d5425991945bf992d99da400652850e5.gif

3、公式解析。

(1)--($C$3:$C$11=G4),--($D$3:$D$11=H4):

先判断C3:C11数组中的每一项是否跟G4单元格的内容“李明芳”相等,如果相等,返回TRUE,否则,返回FALSE。再判断D3:D11数组中的每一项是否跟H4单元格的内容“面膜”相等,如果相等,返回TRUE,否则,返回FALSE。在SUMPRODUCT函数中,逻辑值TRUE和FALSE会直接被当做0来处理,所以在前面加上两个负号“--”将逻辑值TRUE转成1,将逻辑值FALSE转成0。该公式返回的结果如下。

769e9566e6d58d26f991923fd6c1698c.png

(2)公式的计算过程如下图。

ec33cfc08b83b554cad67df3fd050e7d.png

上面的公式我们也可以写成“=SUMPRODUCT(($D$3:$D$11=H4)*($E$3:$E$11=I4)*$F$3:$F$11)”,得到的结果都是2655。

8101079a385e32e10c5afca5b96c137a.png

观察上面两条公式,不难发现,得到的结果是一样的,但是第一条公式数组之间是用逗号隔开,第二条公式数组之间是用星号隔开,关于逗号和星号,有什么区别呢?

公式一有3个参数,而公式二只有1个参数。(判断有几个参数要看是不是用逗号去分隔开)。第一个公式中,三个区域相乘这一步是由函数来完成的,函数做了两件事,先让三个区域的数据对应相乘,再把乘积相加。在第二个公式中,三个区域相乘是由数组计算来完成的,函数只做了一件事,就是把乘积值相加。

4fcf33cff02a5384b384e9ca45f87eee.png

下图中的J4单元格公式为:=SUMPRODUCT(--($D$2:$D$11=H4),--($E$2:$E$11=I4),$F$2:$F$11),该公式参数之间使用逗号隔开,得到的结果是正确的“2655”。J5单元格公式为:=SUMPRODUCT(($D$2:$D$11=H4)*($E$2:$E$11=I4)*$F$2:$F$11),该公式参数直接使用星号隔开,得到的结果是错误值“#VALUE!”。

8a37050bf9189af8f0e73f63bb1d9f8f.png

第一个公式中用的是逗号(,),有3个独立的参数。SUMPRODUCT函数首先让3组数据对应相乘,相乘的时候会检查数据并把非数值型数据作为0处理,然后再把乘积相加。因此,D2“姓名”和E2“产品”会当成0来处理,公式可以得到正确结果。

3b70a24e992287b1f397984be6e6ddc3.png

第二个公式中使用星号(*),结果错误,为什么呢?因为计算的区域中D2“姓名”和E2“产品”是文本,文本是不能进行乘法运算的,SUMPRODUCT函数这时只负责把乘积相加。所以公式一开始就已经得到错误值“#VALUE!”了。

63d67326e46e72e3ecf7555cd9fb399d.png

关于逗号和星号的区别,大家看了本篇文章应该有了更深的理解,如果您还有不懂之处,可以在评论区留言或私信找小编哦~

想要本期教程的练习文件,私信发送“011”即可获取!

fa3e442e0adcc9f565dc33d74ed823ae.png

如果您觉得文章对您有帮助,可以给小编赞赏鼓励哦,您的赞赏、关注、转发、评论、点赞都是对小编的鼓励与支持,谢谢您!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值