java数组求和函数_Excel教程:12种多列数据求和,最后⼀种
⽅法太厉害
先来看⼀下什么是按条件求多列数据之和。
类似下图这样的数据,需要根据G列的产品名称在H列汇总数据。条件区域在B列,⽽要求和的数据在C、D、E三列中。这种求和就是按条件求多列数据之和,简称多列条件求和。
这类条件求和,在实际⼯作中经常会遇到,但直接⽤⼀个SUMIF函数或者透视表是⽆法完成的。
今天给⼤家分享解决这个问题的12个套路公式(有没有被惊到?),当然你能掌握其中的两三种就够⽤了(请允许我像孔⼄⼰那样炫耀⼀回)。
公式1:=SUMIF(B:B,G2,C:C)+SUMIF(B:B,G2,D:D)+SUMIF(B:B,G2,E:E)
公式1:
刚才说过⽆法直接⽤⼀个sumif函数求和,因为sumif要求条件区域和求和区域⼤⼩相同,⽽本例显然不满⾜这个要求。
⽤三个sumif分别求和后再相加,这不难理解,但是如果要求和的列更多的话,还是有点⿇烦。
公式2:=SUM(IF(B$2:B$16=G2,C$2:E$16))
公式2:
这是⼀个数组公式,需要按住Ctrl、shift和回车键完成输⼊。
数组有⾃扩展性,利⽤这个特性就可以将⼀列条件与三列数据进⾏判断。满⾜条件的时候为对应数字,不满⾜条件时得到FALSE,这是if函数省略第三参数以及第三参数前逗号的⽤法。
在这个公式中,⽤if做条件判断得到需要求和的数字,再⽤sum实现最终的求和结果。
公式3:=SUM((B$2:B$16=G2)*C$2:E$16)
公式3:
这个公式是⽐较常⽤的⼀种套路,与公式2的区别在于少了⽤if函数进⾏判断,它直接利⽤了逻辑值参与计算。公式同样需要三键输⼊。
如果不习惯三键的话,SUM数组公式可以⽤SUMPRODUCT函数取代。关于SUMPRODUCT函数的⽤法可以查看《加了*的SUMPRODUCT函数⽆所不能》。
公式为:=SUMPRODUCT((B$2:B$16=G2)*C$2:E$16),两个公式原理完全⼀致,可以视为同样的公式。excel数组函数的实例
公式4:=SUMPRODUCT((B$2:B$16=G2)*(C$2:C$16+D$2:D$16+E$2:E$16))
公式4:
这可以视为公式3的另⼀种思路,当求和区域是连续的多列时,两个公式都可以⽤;如果要求和的多列是不连续的,例如只求第1周和第3周的和,则只适合⽤公式4。
以上四个公式都属于⽐较基础、常⽤的套路。
下⾯要分享的公式,会涉及⼀些稍有难度或者难以理解的函数。如果你有⼀定的基础,可以结合公式⾃⼰去研究⼀下;如果感到难以理解的话,也可以先收起来,作为⽇后学习的⼀个⽅向。
公式5:=SUMPRODUCT((B$2:B$16=G2)*MMULT(C$2:E$16,{1;1;1}))
公式5:
SUMPRODUCT和MMULT函数联⼿,感到蒙圈了没有?
公式6:=SUM(MMULT((B$2:B$16=G2)*C$2:E$16,{1;1;1}))
公式6:
注意哦,这个公式可不是简单的把SUMPRODUCT换成SUM了。
要看懂这两个公式,必须对MMULT函数有所了解。如果对这个函数还⽐较陌⽣的话,咱们换⼀个⼤家稍微熟悉点的OFFSET函数也可以。对OFFSET不熟悉的可以查看《Excel进阶之路必学函数:动态统计之王——OFFSET(上篇)》。
公式7:=SUM(SUMIF(B:B,G2,OFFSET(B:B,,{1,2,3})))
公式7:
这个公式其实是对公式1的优化,利⽤OFFSET得到了三个⼀列的求和区域,相当于⽤⼀个SUMIF和OFFSET实现了三个SUMIF的⼯作。公式的优势在于当求和列增加的时候,只需要在OFFSET⾥增加偏移数即可。
通常能⽤OFFSET构造的多区域数据,INDIRECT也可以搞。
公式8:=SUM(SUMIF(B:B,G2,INDIRECT("c"&{3,4,5},)))
公式8:
INDIRECT函数⽐较⽜的地⽅是有两种引⽤⽅式,也就是RC模式和A1模式,函数的第⼆参数就是确定使⽤何种引⽤⽅式的。
公式9:=SUM(SUMIF(B:B,G2,INDIRECT({"c","d","e"}&1)))
公式9:
注意仔细区分这两个公式中INDIRECT⾥的区别。
实际上,7、8、9这三个公式的思路差不多,都是⽤函数构造多个单列区域,为SUMIF服务,区别只是OFFSET与INDIRECT,以及INDIRECT的两种引⽤形式。
公式10:
公式10:=SUM(DSUM(A$1:E$16,{3,4,5},G$1:G2))-SUM(H$1:H1)
这个公式的关键是DSUM函数。DSUM是⼀个数据库类的求和函数,可以实现条件求和,有兴趣的朋友可以⾃⼰了解⼀下这个函数,看看教程《DSUM,最简单的条件求和函数!你知道不?》。
公式11:=SUMPRODUCT(COUNTIF(G2,B$2:B$16)*C$2:E$16)
公式11:
SUMPRODUCT和COUNTIF都是⽐较常⽤的函数。这个公式中,COUNTIF充当了条件判断的⾓⾊,你能看明⽩其中的门道吗?
公式12:=MMULT(MMULT(N(G2:G6=TRANSPOSE(B2:B16)),C2:E16),{1;1;1})
公式12:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论