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