编程技术分享平台

网站首页 > 技术教程 正文

万能匹配函数 之基础 SUMPRODUCT

xnh888 2024-11-21 23:02:44 技术教程 14 ℃ 0 评论

各位甲纯们,大家新年好哇!

转发上面这头牛,新年牛转钱坤啦!


作为一个低产著称的非技术流派写手,总想着多憋一会儿,看看能不能产出个惊天动地的哪吒。


著名的纯老师曾经说过:VLOOKUP是做表水平的分水岭。


但是VLOOKUP函数再好用,仍然存在难以解决的短板,就是必须知道要查找的数据在哪行或哪列。如果不知道,就无从匹配了。


另外,一般的表格,要么横排:

要么竖排:


但是甲纯做表,是想怎么排就怎么排!


类似上面这种多列数据,如果知道【名字】,但不知道在哪一列,怎么匹配出【手机号码】来着?


没事,纯老师出马,打造一个万能匹配函数,专治各种任性!


先介绍需要用到的一个基础函数:SUMPRODUCT。

这个函数可以理解为数组乘积之和,即1个或者多个数组相乘后再求和。

来吧,再次感受被高数支配的恐惧吧!


一、应用基础:

(1)一个参数

设置一个参数时,SUMPRODUCT相当于求和函数SUM。如下图,求猪头总重量:

【注意】

SUMPRODUCT函数内,如果包含文本、逻辑值等非数值数据时,函数会将其视同数据0处理。


(2)多个参数

比如下列数据,知道每头猪吃饲料的【日食量】,以及【饲养天数】,要求被吃掉的饲料总量。


两个公式的对比操作:

静图:

使用 SUMPRODUCT效率提高许多!


【再次注意】

如果参数数组内包含的元素数量不相同,则运算会出错。比如下面的参数1【日食量】的元素为3个,而【饲养天数】的元素为4个,无法进行SUMPRODUCT运算,得到错误的运算结果。


二、按条件计数

大部分时候SUMPRODUCT函数,并不是用来进行数组相乘求和运算的,而是曲线救国,基本是用来进行按条件计数或求和运算的。


比如下表,求【产地】是”亚洲”的猪的总数量。


【小技巧】

注意参数内的(D2:D5="亚洲")+0,如果需要对参数内的逻辑值进行运算,则应该在参数内进行等值处理。等值处理就是+0,-0,*1或/1,运算结果等于原数值本身,关键的是函数会把逻辑值变成0或1,这就解决了逻辑值无法参与运算的问题。如果没有进行等值处理,则数值会出错,如下图:


三、按条件求和

在上面的例子上,再加一个参数数组,求【产地】是”亚洲”的猪的总重量。


四、多条件求和


【小技巧】

多个参数数组时,公式的写法,可以列成多个参数,也可以让参数直接用(*)相乘。参数内有逻辑值时,如果直接用(*)相乘,则相当于直接做等值处理了,就不需要在做额外(+0之类的)的等值处理。


五、兼容性

在EXCEL2007及以后的版本中,有COUNTIFS函数可以进行多条件计数,有SUMIFS函数可以进行多条件求和,SUMPRODUCT函数的相应拓展应用就被取代了。不过可能有甲纯还在使用EXCEL2003及之前的版本,因为没有COUNTIFS和SUMIFS函数,所以SUMPRODUCT函数还是值得学习和使用的。


好了,本期打好基本功,下期再放大招。

先鸽为敬,告辞!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表