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