之前罌粟姐姐推過一篇文章Excel中SUMIF函數的10個高級用法!超級經典~,有小伙伴回復說:“還是SUMPRODUCT函數好用”。
的確,剛入門學習EXCEL的時候,最先接觸到的條件統計函數就是SUMIF、SUMIFS、COUNTIF、COUNTIFS等,非常簡單,容易理解和操作,但遇到特殊問題時(例如數組),就無能為力了。
這一期,就給大家介紹這個能計數、能求和、能排名的計算全能王函數:SUMPRODUCT。
目錄:
認識SUMPRODUCT函數
SUMPRODUCT函數與SUM函數的異同
快速求和
加權匯總
多條件計數
多列聯動條件判斷計數
多條件求和
隔列求和
統計不重復項個數
中國式排名
還解決了一個困擾我兩年的難題
1、認識SUMPRODUCT函數
從SUMPRODUCT本身的意思來理解,SUM是求和,PRODUCT是相乘,所以SUMPRODUCT函數就是相乘之后再求和。
例如:有兩組數據分別為1-5和6-10,使用SUMPRODUCT函數計算過程如圖所示。
2、SUMPRODUCT函數與SUM函數的異同
從一定程度上來說,SUMPRODUCT函數帶有數組運算的性質,可以實現多項計算。
3、快速求和
現有一公司2016年在各城市的銷售量及產品單價,需計算2016年全年總銷售額。
公式=SUMPRODUCT(B2:B16,C2:C16)
4、加權匯總
現有一員工2016年工作完成情況及各項工作指標KPI,需計算2016年總績效得分。
公式=SUMPRODUCT(B2:B6,C2:C6)
5、多條件計數
公式套路:
(1)=SUMPRODUCT((區域1=條件1)*(區域2=條件2)*......*(區域N=條件N))
(2)=SUMPRODUCT((區域1=條件1)*1,(區域2=條件2)*1,…,(區域N=條件N)*1)
(1)或(2)兩種形式都可以。
現有一公司2016年各銷售員每次的銷售額,需計算銷售員楊過銷售額大于10萬的次數。
6、多列聯動條件判斷計數
現有一公司2016年各銷售員實際銷售額與計算銷售額,需計算實際銷售額小于計劃銷售額的次數,即沒有完成任務的次數。
公式=SUMPRODUCT((E2:E16<F2:F16)*1)
7、多條件求和
公式套路:
(1)=SUMPRODUCT((區域1=條件1)*(區域2=條件2)*......*(區域N=條件N)*匯總區域)
(2)=SUMPRODUCT((區域1=條件1)*(區域2=條件2)*…*(區域N=條件N),匯總區域)
(1)或(2)兩種形式都可以。
現有一公司2016年各銷售員每次的銷售額,需計算銷售員楊過在河南地區的總銷售額。
公式=SUMPRODUCT((B2:B16="河南")*(D2:D16="楊過")*E2:E16)
8、隔列求和
現有一公司2016年各部門各月借貸額度,需計算2016年各月借貸總額。
借方公式:=SUMPRODUCT((MOD(COLUMN($B$2:$I$2),2)=0)*B3:I3)
貸方公式:=SUMPRODUCT((MOD(COLUMN($B$2:$I$2),2)=1)*B3:I3)
9、統計不重復項個數
剔除重復值再數據處理中非常常見,COUNTIF通過數組運算得到一個數組結果,即區域中每個單元格在整列中所出現的次數,將這個數組求其倒數,然后求和就可以得到唯一值的總個數。
公式=SUMPRODUCT(1/COUNTIF($E$2:$E$16,$E$2:$E$16))
10、中國式排名
可能有Excel基礎的都知道排序用RANK函數就能搞定,可是在使用RANK函數進行排名時,出現相同名次,其后的排名數字會自動向后移位。
在我們的生活中還存在著另一種排名方式,它的特點是相同名次不影響后續的排名名次,無論有幾個第一名存在,后面的名次始終還是第二名。
=SUMPRODUCT(($E$2:$E$16>=E2)*(1/COUNTIF($E$2:$E$16,$E$2:$E$16)))
11、還解決了一個困擾我兩年的難題
A列為全國各地區的編碼,1-34分別代表全國23個省(包括臺灣省)、5個自治區、4個直轄市、2個特別行政區。B列為三級分公司的編碼,1-3分別代表一級分公司、二級分公司、三級分公司。
現需要設置各地區各級分公司唯一ID,ID=地區編碼+分公司級別編碼+同一地區同一分公司第幾次出現。
公式=A2&B2&SUMPRODUCT(1*(A2&B2=A$2:A2&B$2:B2))
完全是最開始計劃想要得到的結果,利用一個函數完美的解決了困擾了2年的問題。
當然,SUMPRODUCT因為有數組運算的性質,所以在計算效率上沒有普通函數高,所以對于一般的簡單問題,不建議使用SUMPRODUCT這樣的高級函數。
2017年,罌粟姐姐將繼續走在精進Excel的路上,您,是否愿意與我同行呢?一起加油!