suMpRoduCT函数的使用办法及实例讲解(值得收藏)

发布时间:2012-11-12 00:00 发布者:系统之家官网来源:www.8m55.com

 

suMpRoduCT函数的使用办法及实例讲解(值得收藏)

今天和大家共享一个名字拖沓,但是应用非常普及的函数——suMpRoduCT函数

开门见山,咱们通过几个例子,一起来看下suMpRoduCT函数全部能干什么样的工作,本文通过几个实例讲解比suMiF简体十倍的函数——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)

 



本站发布的系统和软件仅为个人学习测试使用,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!
系统之家官网为大家提供一个绿色系统下载平台 Copyright 2019 版权所有 备案号:浙ICP备12026615号-1