网站首页 > 技术教程 正文
之前的文章,按年度、月度统计,用上了SUMPRODUCT函数,今天就来好好的剖析一下这给函数。
SUMPRODUCT函数是在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。语法如下:SUMPRODUCT(array1, [array2], [array3], ...)
其中array1 是必须的参数,[array2], [array3], ...为可选参数。
1.简单的例子,说明一下SUMPRODUCT函数的用法。
上图是一个非常简单的表格,要算出销售的总额,只需要 销售单价*销售数量就可以。合计再用SUM函数,汇总一下销售总额。结果就如D14所示,如果用SUMPRODUCT函数,就可以直接利用销售单价和销售数量直接计算出总价。具体公式为:=SUMPRODUCT(B2:B13,C2:C13)。结果如D15所示。
2:大多数错误的原因
很多小伙伴们用这个函数的时候,经常会得到错误值,大多数是因为区域的大小选择不一致。如果把上面的例子。公式变成=SUMPRODUCT(B2:B13,C2:C12) 那么得出的结果就是:
那是因为,B2:B13这给数组包含了12个数据,而C2:C12仅包含了11个数据,那么最终的结果就是报错。
3:另外一种常见的写法,逗号(,)变乘号(*)
就本篇列举的例子来说,如果=SUMPRODUCT(B2:B13,C2:C13)变成=SUMPRODUCT(B2:B13*C2:C13)可以看到计算的结果是一致的。那么就会带来一给新的问题,他们有什么区别?
4:逗号(,)变乘号(*)的差别
虽然只是将公式里的逗号变成了乘号,但是公式的意义发生了变化。第一个公式=SUMPRODUCT(B2:B13,C2:C13)有两个参数。而第二个公式=SUMPRODUCT(B2:B13*C2:C13)只有一个参数。(判断有几个参数,就看是否用逗号去分割开)。第一个公式中,两个区域相乘这一步是由函数来完成的,函数做了两件事,先让两个区域的数据对应相乘,再把乘积相加。在第二个公式中,两个区域相乘是由数组计算来完成的,函数只做了一件事,就是把乘积值相加。
那么意义何在呢?
我们还是通过例子来说明。
在上图这个公式中用的是逗号(,),有两个独立的参数。SUMPRODUCT函数首先让两组数据对应相乘,相乘的时候会检查数据并把非数值型数据作为0处理,然后再把乘积相加。因此,B1"销售单价"和C1"销售数量"会当成0来处理,公式可以得到正确结果。
当我们把逗号换成*号后,公式结果错误。为什么呢?SUMPRODUCT函数这时只负责把乘积相加。参数B1:B13*C1:C13是数组乘法运算,因为计算的区域中包含了文字(文字是不能进行乘法运算的),所以在这个数组的计算结果里就有错误值了。
5:SUMPRODUCT用乘号(*)的要点
以上内容所要表达的意思有两点:
第一、使用逗号和使用乘号(*)有时候结果相同,但是意义完全不一样,希望大家可以理解。
第二、SUMPRODUCT函数使用乘号(*)必须要注意两点:1.不能存在无法计算的内容,如文字。2,如果是两组或多组数组相乘的话,数据区域大小一致。用逗号则只需要保证数据区域大小一致即可。
6.其实i乘号(*)还带来了更大的优势
我们把SUMPRODUCT函数逗号、乘号前后的数据用A、B来代替,表达为SUMPRODUCT (A,B)和SUMPRODUCT (A*B)。当为逗号时,A、B必须同时都是数值或者数组,不能一个是数值,一个是数组;当为乘号时,A、B可以同时都是数值或者数组,也可以一个是数值一个是数组。以下SUMPRODUCT函数都是正确的格式。SUMPRODUCT (C1,B1);SUMPRODUCT (C1*B1);SUMPRODUCT (C1:C9,D1:D9),SUMPRODUCT (C1:C9*D1:D9),SUMPRODUCT (C1:C9*D1),因此,用乘号扩大了SUMPRODUCT函数的应用。你即将在下面看到的都是用SUMPRODUCT函数用乘号(*)的应用。
7:看得懂这些SUMPRODUCT公式吗?
如果明白了上面的内容,说明对于这个函数的基本用法是没问题了。可是很可能很多SUMPRODUCT公式你还是看不懂,比如这种:
这实际上是一个条件计数的问题,再看这个:
这是一个多条件求和问题。
在这几个表,几乎各种 统计问题都可以用SUMPRODUCT函数去解决,不再一一列举。仅仅是上面连个例子,加上之前案例里面使用的SUMPRODUCT函数,希望各个小伙伴,都能理解并能运用。
如果你还不能完全理解SUMPRODUCT函数的用法,原因就是你还不了解这两个知识点:逻辑值和数组。
8。了解一点逻辑值和数组。
先来说说逻辑值,逻辑值只有两个,就是TRUE和FALSE。当我们再公式里面进行某种比较或这判断的时候,就会产生逻辑值,以=SUMPRODUCT((A2:A13="张三")*1)为例,其中,A2:A13="张三"就是一个判断。通常情况下,我们以单元格去做判断。A2="张三"的意思就是判断A2单元格内容是否为"张三"。如果是则得到TRUE,反之得到FALSE。当我们使用了一个区域去判断的时候,就会得到一组数据,这其实就是一个数组。例如A2:A13="张三"就会得到一组逻辑值,可以用F9来看看计算结果。
因为逻辑值无法直接进行求和,必须转换为数字才行,转换的方法就是对逻辑值进行加减乘除之一的任何运算即可。在这给公式中,*1就是这给作用。可以看看效果。
通过*1运算之后,TRUE都变成了1,而FALSE都变成了0。不要问我为什么,Excel就是这么规定的,逻辑值与数字的对应关系就是这个。
好了,我们首先得到一组逻辑值,然后通过*1变成一组数字,再进行求和,就达到了按条件计数的目的。你现在是否已经理解了=SUMPRODUCT((A2:A13="张三")*1)这个公式呢?现在我们了解到逻辑值,也明白了数组运算的第一个原则:当一组数与一个数进行计算时,是这组数中的每个数据分别与这一个数进行计算。刚才的公式中就是这样计算的。
私信 1217 可以获取VBA FOR WPS的安装程序
私信 数据 可以获取SQL代码的Excel文件
私信 视频 可以获取80集VBA入门视频
猜你喜欢
- 2024-11-21 巧用逻辑值,为SUMPRODUCT赋能,提高生产力!
- 2024-11-21 「EXCEL进阶」根据多种条件求和(SUMPRODUCT)
- 2024-11-21 第五章:Excel求乘积函数——sumproduct
- 2024-11-21 sumproduct函数
- 2024-11-21 Excel“王者”级求和函数SUMPRODUCT,职场必学!
- 2024-11-21 你会用SUMPRODUCT函数吗?还不会用损失就大了
- 2024-11-21 Excel实例教程之Sumproduct条件求和用法
- 2024-11-21 同样是求和函数,SUMPRODUCT比SUM的优势在哪里?
- 2024-11-21 Exce技巧:SUMPRODUCT函数比SUM和SUMIF更‘牛’,你了解多少?
- 2024-11-21 1个示例告诉你,SumproDuct才是求和函数No.1
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)