編按:按條件求和,工作中很常見。如果是根據條件求單列數據之和,SUMIF函數即可解決,但如果是求多列數據呢?我們這裡分享12種方法,各有各的特色。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
先來看一下什麼是按條件求多列數據之和。
類似下圖這樣的數據,需要根據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)
剛才說過無法直接用一個sumif函數求和,因為sumif要求條件區域和求和區域大小相同,而本例顯然不滿足這個要求。
用三個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的區別在於少了用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的另一種思路,當求和區域是連續的多列時,兩個公式都可以用;如果要求和的多列是不連續的,例如只求第1周和第3周的和,則只適合用公式4。
以上四個公式都屬於比較基礎、常用的套路。
下面要分享的公式,會涉及一些稍有難度或者難以理解的函數。如果你有一定的基礎,可以結合公式自己去研究一下;如果感到難以理解的話,也可以先收起來,作為日後學習的一個方向。
公式5:=SUMPRODUCT((B$2:B$16=G2)*MMULT(C$2:E$16,))
SUMPRODUCT和MMULT函數聯手,感到蒙圈了沒有?
公式6:=SUM(MMULT((B$2:B$16=G2)*C$2:E$16,))
注意哦,這個公式可不是簡單的把SUMPRODUCT換成SUM了。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
要看懂這兩個公式,必須對MMULT函數有所了解。如果對這個函數還比較陌生的話,咱們換一個大家稍微熟悉點的OFFSET函數也可以。對OFFSET不熟悉的可以查看《Excel進階之路必學函數:動態統計之王——OFFSET(上篇)》。
公式7:=SUM(SUMIF(B:B,G2,OFFSET(B:B,,)))
這個公式其實是對公式1的優化,利用OFFSET得到了三個一列的求和區域,相當於用一個SUMIF和OFFSET實現了三個SUMIF的工作。公式的優勢在於當求和列增加的時候,只需要在OFFSET裡增加偏移數即可。
通常能用OFFSET構造的多區域數據,INDIRECT也可以搞。
公式8:=SUM(SUMIF(B:B,G2,INDIRECT("c"&,)))
INDIRECT函數比較牛的地方是有兩種引用方式,也就是RC模式和A1模式,函數的第二參數就是確定使用何種引用方式的。
公式9:=SUM(SUMIF(B:B,G2,INDIRECT({"c","d","e"}&1)))
注意仔細區分這兩個公式中INDIRECT裡的區別。
實際上,7、8、9這三個公式的思路差不多,都是用函數構造多個單列區域,為SUMIF服務,區別只是OFFSET與INDIRECT,以及INDIRECT的兩種引用形式。
公式10:=SUM(DSUM(A$1:E$16,,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),)
最後這個公式無疑是很有分量的,不然不足以壓軸。
特別要說明的一點是這個公式要選定公式區域,然後按照數組公式的輸入方式完成,而不是先有數組公式再下拉的那種用法。
12個公式有很簡單的,也有比較難的,有你能看懂能使用的,也有你暫時還無法理解的。但不管怎樣,相信你都能通過今天的內容有一些新的收穫。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
****部落窩教育-excel多列數據條件求和****
原創:老菜鳥/部落窩教育(未經同意,請勿轉載)
更多教程:部落窩教育