由胡歌主演的电视剧《猎场》就要大结局了,我除了关注郑秋冬和罗伊人的是否终成眷属以外,还特别关心,德聚仁和作为一家知名的上市公司,一个月到底要发多少工资?下面是德聚仁和公司的工资明细表(纯属杜撰,哈哈)
很多朋友一定会说,太简单,用过Excel的应该都会自动求和吧。即使没有用过Excel,按计算器也能轻松搞定,有朋友就曾经在后台给我这样留言。没错,自动求和就是一键搞定的事儿,如下图所示:
直接选中工资最下方的空白单元格--按下Alt+=快捷键即可自动录入公式--回车搞定。其实,除了sum函数,还有一个函数照样能完成上面的任务,不仅如此,它能应用得更广,这个函数就是sumproduct函数,在它面前,sum函数必须得俯首称臣。还是上面的例子,只需要在H38单元格输入公式:=SUMPRODUCT(H26:H37)即可,公式=SUMPRODUCT(H26:H37))和=SUM(H26:H37)得到了一模一样的结果。
一、认识乘积之和函数:SUMPRODUCT
SUMPRODUCT,主要用于求乘积之和。写法如下:=sumproduct(array1,array2,array3,……),array指的是数组或者单元格区域,此函数至少需要1个参数(如求和的例子),最多可以支持255个参数。什么是乘积之和,下面以一个简单的例子来说明一下:求所有产品的总销售额。
这个问题要搁在平常,很多朋友肯定会在D列增加一个列:销售金额,然后再在D4的位置输入公式:=B4*C4,向下填充公式,得到每个产品的销售金额,最后在D10单元格输入公式:=sum(D4:D9)得到所有产品的销售总金额。这个方法思路没错:先相乘,后相加,但就是添加辅助列太麻烦了,因此我们有了sumproduct函数,一条公式即可搞定:=SUMPRODUCT(B4:B9,C4:C9)。运算原理就是:先相乘,后相加。B4:B9区域和C4:C9区域对应单元格一一相乘(就B4*C4,B5*C5,B6*C6……),然后将得到的所有数字全部加起来。因为要一一相乘,所以此函数要求,每个参数(数组或者区域)必须具有相同的维数(array1为两行两列,那么其他所有的参数都必须是两行两列,否则出错),而且当任意一个参数中出现文本时,sumproduct函数将其默认为0进行处理。如下面的例子:
方法:
I3中输入公式:=SUMPRODUCT(B6:C10,D6:E10),回车即可。
此公式表示两个二维数组先相乘然后再相加。在运算的过程中,凡是出现了“无”的位置,都被默认成0进行运算;
二、让sum无法超越的条件求和以及条件计数
一说到条件求和以及条件计数,很多有一定Excel基础的朋友想到的第一个函数就是sumif函数和countif函数。的确这两个函数是专门解决条件统计而专门研发出来,很简单也很好用。然而,有些经典函数咱们只需要掌握一个,然后灵活运用,其他的专门函数都可以完全用不上了,sum函数算一个,sumproduct函数当然更算一个。而且说到这一块,sum函数还必须sumproduct函数俯首称臣。如下面的例子:
条件求和:学历为本科的员工工资总额是多少?
这个需求如何来做呢?
此列中有个条件,我们先写出来:=--(D16:D27="本科"),前面的两个公式会让我们得到1组由true和false构成的数组,我们在公式前面加2个负号,将true和false转为1和0;
将上述得到的数组和工资列相乘,条件满足的人的工资将会保留,其他的将会得到0,这时候外层加一个sum函数即可得到条件求和的结果了。公式如下:{=sum(--(D16:D27="本科")*H16:H27)}。由于是数组公式,我们需要按下Ctrl+Shift+Enter组合键完成公式录入才能得到正确的结果,否则出错。
以上就是用利用sum函数来做条件求和的方法,它有一个极其明显的缺点,那就是使用了数组,我们知道数组公式是非常占用内存资源的,如果一个表格通篇都是数组公式,那么很可能Excel都会被卡死。因此sumproduct函数的优势就凸显出来了。保持前面的步骤不限,只是嵌套的sum函数改成sumproduct函数即可很完美的解决这个问题。sumproduct函数写出的公式如下:
=sumproduct(--(D16:D27="本科")*H16:H27)}
=sumproduct(--(D16:D27="本科"),H16:H27)}
条件计数:学历为硕士,籍贯为浙江的员工人数是多少?
此列中有2个条件,我们先写出来:=D16:D27="硕士",=F16:F27="浙江",前面的两个公式会让我们得到2组由逻辑值true和false构成的数组,逻辑值true和false参加数学运算将会自动转化为1和0.
两条件要同时满足,我们需要将其乘起来:(D16:D27="硕士")*(F16:F27="浙江"),两组由逻辑值true(1)和false(0)的数组相乘,同时两个条件都满足的将会得到1,有一个条件或者两个条件都不满足的将会得到0
外层加一个sum函数即可得到条件计数的结果了。公式如下:{=sum((D16:D27="硕士")*(F16:F27="浙江"))}。由于是数组公式,我们需要按下Ctrl+Shift+Enter组合键完成公式录入才能得到正确的结果,否则出错。
{=sum((D16:D27="硕士")*(F16:F27="浙江"))}
利用sumproduct做条件计数的公式如下:
=sumproduct((D16:D27="硕士")*(F16:F27="浙江"))
最终效果图如下:
综上所述,sumproduct函数绝对可以称得上是统计函数中的王者,它不仅可以取代sum函数,还可以轻轻松松干掉sumif,sumifs,countif,countifs等4个函数,因此我们一定要想方设法掌握它。