当前位置:首页 > 办公设计 > Office教程 > SUMPRODUCT函数详解

SUMPRODUCT函数详解

1年前 (2025-05-24)Office教程1370

今天和大家分享一个名字拖沓,但是应用非常广泛的函数——SUMPRODUCT。

开门见山,咱们通过几个例子,一起来看下SUMPRODUCT具体能干什么样的工作。

假设上面这张图,是某个公司工资发放的部分记录表,A列是工资发放的时间,B列是员工所属的部门,C列是员工姓名,D列是相关员工领取的工资金额。

那么,问题来了:

一,西门庆同志领取了几次工资?

这是一个单条件计数的问题,通常我们使用COUNTIF函数,如果使用SUMPRODUCT函数,一般写成这样:
=SUMPRODUCT((C2:C13=”西门庆”)*1)

先判断C2:C13的值是否等于”西门庆”,相等则返回TRUE,不等则返回FALSE,由此建立一个有逻辑值构成的内存数组,SUMPRODUCT有一个特性,它会将非数值型的数组元素作为0处理,逻辑值自然是属于非数值型的数组元素,我们使用*1的方式,把逻辑值转化为数值,TRUE转化为1,FALSE转化为0,最后统计求和。

二,西门庆同志一共领取了多少工资?

这是一个单条件求和的问题,通常我们使用SUMIF函数,如果使用SUMPRODUCT函数,我们可以写成这样:
=SUMPRODUCT((C2:C13=”西门庆”)*D2:D13)

依然首先判断C2:C13的值是否等于”西门庆”,得到逻辑值FALSE或TRUE,再和D2:D13的值对应相乘,最后统计求和得出结果。
看完了上面两个问题,有些表亲心里就嘀咕了,貌似SUMPRODUCT能干的事,SUMIF和COUNTIF也能做到,而且做的更好,那么还要SUMPRODUCT干啥?
乡亲们呐,话不能这么说,SUMPRODUCT可是上得厅堂下得厨房,对工作环境不挑不拣,它对参数类型没有啥特别要求,COUNTIF和SUMIF就不同咧,他俩要求个别参数,必须是区域数组(Range),比如下面这两个问题,COUNTIF和SUMIF就犯难了。

三,六月份财务部发放了几次工资?累计发放了多少?

六月份财务部发放了几次工资,这是一个多条件计数的问题哈:
第一个条件,发放工资的时间必须是六月份;
第二个条件,发放工资的部门必须是财务部。
如果使用多条件计数函数COUNTIFS,判断发放工资的时间是否属于六月份,会简单问题复杂化。
而使用SUMPRODUCT函数,咱们可以简单利索的写成这样:

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13=”财务部”))

统计六月份财务部发放了多少工资?
表亲们都晓得,这是一个常见的多条件求和问题。如果使用SUMIFS函数,判断发放工资的时间是否属于六月份,和COUNTIFS类似,也会简单问题复杂化。
SUMPRODUCT跃然而至:
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13=”财务部”),D2:D13)

上面这个公式可以说是SUMPRODUCT多条件求和的典型用法啦,可以归纳为:
=SUMPRODUCT((条件一)*(条件二)……,求和区域)

四,六月份财务部和市场部合计发放了多少工资?

通过上面第三个问题,表亲们已经晓得如何计算六月份财务部发了多少工资,那么六月份财务部和市场部合计发了多少工资,又当怎么计算呢?
我们经常见有些表亲把公式写成这样:

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13=”财务部”)*D2:D13)+SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13=”市场部”)*D2:D13)

这些表亲们估计心想,不就是计算两个部门吗?甭说两个,二十个咱也能算,一个加一个,一直加到二十个,世上无难事,只怕有心人嘛……
公式写的那么长,先不谈计算速度,首先它累手啊,其次万一写错了,要修改,那也是麻烦他妈哭麻烦——麻烦死了。
其实我们可以写成这样:
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13={“财务部”,”市场部”})*D2:D13)

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/1337

分享给朋友:

“SUMPRODUCT函数详解” 的相关文章

别再Ctrl+C、Ctrl+V了,已经无法满足现在的日常办公了!

别再Ctrl+C、Ctrl+V了,已经无法满足现在的日常办公了!

还在用Ctrl+C和Ctrl+V复制粘贴内容?它已经无法满足我们日常办公所需了。   如下图所示,想要将Word文档中部分重要内容,拷贝到另一个Word文档中,然后,我们就会在两个文档中来回的复制,粘贴内容。   还有,我们在网上收集资料的时候,想...

Excel给数据批量添加单位、小数点、千位分隔符

Excel给数据批量添加单位、小数点、千位分隔符

Excel中如何对数据添加单位?许多新手朋友可能会说,直接在数字后面输入单位不就行了吗?其实不然,这种做法是错误的,直接录入单位不仅费时,而且对于数据的求和运算等都是会受到影响,使得你无法正常运算公式。这里就给小伙伴们分享一下,在Excel中如何正确的添加单位,不仅快速,而且不会影响数据运...

新手必备:Excel表格求和快捷键ALT+=(最快求和技巧)

新手必备:Excel表格求和快捷键ALT+=(最快求和技巧)

前面,我有讲过许多种Excel求和的技巧与公式,不过我觉得最快的方法是使用Excel快捷键,利用快捷键我们可以在1秒钟内完成对表格数据的求和,是效率最快的方式,也是新手朋友们必备的技巧哟!     Excel求和快捷键 1、如下图所示,例如:我们需要求出某行或某列的和,...

将流程图进行到底,PPT中带图片的流程图

将流程图进行到底,PPT中带图片的流程图

在制作PPT的时候,我们经常会将一些有结构性的内容,用流程图来展示出来。说到流程图,大多数情况下很多人都会选择文字形式的流程图,但在PPT里面,我们可以尽量少文字,能够用图片体现出来是最好不过。所以,易老师今天就来和各位一起探讨一下带图片的流程图,这项功能在07或之前的版本中是木有的。 插入S...

Excel财务数据多条件汇总经典案例

财务数据多条件汇总经典案例...

将多列的区域或数组合并成一列,就用TOCOL函数

将多列的区域或数组合并成一列,就用TOCOL函数

今天分享TOCOL函数的几个典型应用。 这个函数目前可以在Excel 365和最新的WPS表格中使用,作用是将多列的区域或数组转换为单列。函数用法为: =TOCOL(要转换的数组或引用, [是否忽略指定类型的值], [按行/列扫描]) 其中第二参数为0或者省略该参数时,表示保留所有值。为1表示忽略空...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。