編按:按條件求和,工作中很常見。如果是根據(jù)條件求單列數(shù)據(jù)之和,SUMIF函數(shù)即可解決,但如果是求多列數(shù)據(jù)呢?我們這里分享12種方法,各有各的特色。
先來看一下什么是按條件求多列數(shù)據(jù)之和。
類似下圖這樣的數(shù)據(jù),需要根據(jù)G列的產(chǎn)品名稱在H列匯總數(shù)據(jù)。條件區(qū)域在B列,而要求和的數(shù)據(jù)在C、D、E三列中。這種求和就是按條件求多列數(shù)據(jù)之和,簡(jiǎn)稱多列條件求和。
這類條件求和,在實(shí)際工作中經(jīng)常會(huì)遇到,但直接用一個(gè)SUMIF函數(shù)或者透視表是無法完成的。
今天給大家分享解決這個(gè)問題的12個(gè)套路公式(有沒有被驚到?),當(dāng)然你能掌握其中的兩三種就夠用了(請(qǐng)?jiān)试S我像孔乙己那樣炫耀一回)。
公式1:=SUMIF(B:B,G2,C:C)+SUMIF(B:B,G2,D:D)+SUMIF(B:B,G2,E:E)
剛才說過無法直接用一個(gè)sumif函數(shù)求和,因?yàn)?span style="margin-top: 0px;margin-bottom: 0px;padding: 0px;">sumif要求條件區(qū)域和求和區(qū)域大小相同,而本例顯然不滿足這個(gè)要求。
用三個(gè)sumif分別求和后再相加,這不難理解,但是如果要求和的列更多的話,還是有點(diǎn)麻煩。
公式2:=SUM(IF(B$2:B$16=G2,C$2:E$16))
這是一個(gè)數(shù)組公式,需要按住Ctrl、shift和回車鍵完成輸入。
數(shù)組有自擴(kuò)展性,利用這個(gè)特性就可以將一列條件與三列數(shù)據(jù)進(jìn)行判斷。滿足條件的時(shí)候?yàn)閷?duì)應(yīng)數(shù)字,不滿足條件時(shí)得到FALSE,這是if函數(shù)省略第三參數(shù)以及第三參數(shù)前逗號(hào)的用法。
在這個(gè)公式中,用if做條件判斷得到需要求和的數(shù)字,再用sum實(shí)現(xiàn)最終的求和結(jié)果。
公式3:=SUM((B$2:B$16=G2)*C$2:E$16)
這個(gè)公式是比較常用的一種套路,與公式2的區(qū)別在于少了用if函數(shù)進(jìn)行判斷,它直接利用了邏輯值參與計(jì)算。公式同樣需要三鍵輸入。
如果不習(xí)慣三鍵的話,SUM數(shù)組公式可以用SUMPRODUCT函數(shù)取代。關(guān)于SUMPRODUCT函數(shù)的用法可以查看《加了*的 SUMPRODUCT函數(shù)無所不能》。
公式為:=SUMPRODUCT((B$2:B$16=G2)*C$2:E$16),兩個(gè)公式原理完全一致,可以視為同樣的公式。
公式4:=SUMPRODUCT((B$2:B$16=G2)*(C$2:C$16+D$2:D$16+E$2:E$16))
這可以視為公式3的另一種思路,當(dāng)求和區(qū)域是連續(xù)的多列時(shí),兩個(gè)公式都可以用;如果要求和的多列是不連續(xù)的,例如只求第1周和第3周的和,則只適合用公式4。
以上四個(gè)公式都屬于比較基礎(chǔ)、常用的套路。
下面要分享的公式,會(huì)涉及一些稍有難度或者難以理解的函數(shù)。如果你有一定的基礎(chǔ),可以結(jié)合公式自己去研究一下;如果感到難以理解的話,也可以先收起來,作為日后學(xué)習(xí)的一個(gè)方向。
公式5:=SUMPRODUCT((B$2:B$16=G2)*MMULT(C$2:E$16,{1;1;1}))
SUMPRODUCT和MMULT函數(shù)聯(lián)手,感到蒙圈了沒有?
公式6:=SUM(MMULT((B$2:B$16=G2)*C$2:E$16,{1;1;1}))
注意哦,這個(gè)公式可不是簡(jiǎn)單的把SUMPRODUCT換成SUM了。
要看懂這兩個(gè)公式,必須對(duì)MMULT函數(shù)有所了解。如果對(duì)這個(gè)函數(shù)還比較陌生的話,咱們換一個(gè)大家稍微熟悉點(diǎn)的OFFSET函數(shù)也可以。對(duì)OFFSET不熟悉的可以查看《Excel進(jìn)階之路必學(xué)函數(shù):動(dòng)態(tài)統(tǒng)計(jì)之王——OFFSET(上篇)》。
公式7:=SUM(SUMIF(B:B,G2,OFFSET(B:B,,{1,2,3})))
這個(gè)公式其實(shí)是對(duì)公式1的優(yōu)化,利用OFFSET得到了三個(gè)一列的求和區(qū)域,相當(dāng)于用一個(gè)SUMIF和OFFSET實(shí)現(xiàn)了三個(gè)SUMIF的工作。公式的優(yōu)勢(shì)在于當(dāng)求和列增加的時(shí)候,只需要在OFFSET里增加偏移數(shù)即可。
通常能用OFFSET構(gòu)造的多區(qū)域數(shù)據(jù),INDIRECT也可以搞。
公式8:=SUM(SUMIF(B:B,G2,INDIRECT("c"&{3,4,5},)))
INDIRECT函數(shù)比較牛的地方是有兩種引用方式,也就是RC模式和A1模式,函數(shù)的第二參數(shù)就是確定使用何種引用方式的。
公式9:=SUM(SUMIF(B:B,G2,INDIRECT({"c","d","e"}&1)))
注意仔細(xì)區(qū)分這兩個(gè)公式中INDIRECT里的區(qū)別。
實(shí)際上,7、8、9這三個(gè)公式的思路差不多,都是用函數(shù)構(gòu)造多個(gè)單列區(qū)域,為SUMIF服務(wù),區(qū)別只是OFFSET與INDIRECT,以及INDIRECT的兩種引用形式。
公式10:=SUM(DSUM(A$1:E$16,{3,4,5},G$1:G2))-SUM(H$1:H1)
這個(gè)公式的關(guān)鍵是DSUM函數(shù)。DSUM是一個(gè)數(shù)據(jù)庫類的求和函數(shù),可以實(shí)現(xiàn)條件求和,有興趣的朋友可以自己了解一下這個(gè)函數(shù),看看教程《DSUM,最簡(jiǎn)單的條件求和函數(shù)!你知道不?》。
公式11:=SUMPRODUCT(COUNTIF(G2,B$2:B$16)*C$2:E$16)
SUMPRODUCT和COUNTIF都是比較常用的函數(shù)。這個(gè)公式中,COUNTIF充當(dāng)了條件判斷的角色,你能看明白其中的門道嗎?
公式12:=MMULT(MMULT(N(G2:G6=TRANSPOSE(B2:B16)),C2:E16),{1;1;1})
最后這個(gè)公式無疑是很有分量的,不然不足以壓軸。
特別要說明的一點(diǎn)是這個(gè)公式要選定公式區(qū)域,然后按照數(shù)組公式的輸入方式完成,而不是先有數(shù)組公式再下拉的那種用法。
12個(gè)公式有很簡(jiǎn)單的,也有比較難的,有你能看懂能使用的,也有你暫時(shí)還無法理解的。但不管怎樣,相信你都能通過今天的內(nèi)容有一些新的收獲。
****部落窩教育-excel多列數(shù)據(jù)條件求和****
原創(chuàng):老菜鳥/部落窩教育(未經(jīng)同意,請(qǐng)勿轉(zhuǎn)載)
更多教程:部落窩教育
做Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!
相關(guān)推薦:
DSUM,最簡(jiǎn)單的條件求和函數(shù)!你知道不?
無往而不利的SUMIF面對(duì)這種條件求和竟然傻眼了!
Excel進(jìn)階之路必學(xué)函數(shù):動(dòng)態(tài)統(tǒng)計(jì)之王——OFFSET(上篇)
Excel進(jìn)階之路必學(xué)函數(shù):動(dòng)態(tài)統(tǒng)計(jì)之王——OFFSET(下篇)
聯(lián)系客服