科技改變生活 · 科技引領未來
哈羅,大家好,我是星光,今天給大家分享一個很常用也很實用的函數:SUMPRODUCT。
眾所周知,條件求和與計數是表格使用者最經常碰到的兩個問題,而該函數不但集合了條件求和與計數兩大功能于一身;還可用于復雜場景下的排名處理,甚至聽說有人靠它一個函數就打下了Excel半壁江山……于是便不可不學了。
基礎語法
先來看基礎語法,SUMPRODUCT的官方語法說明是在給定的幾組數組(array)中,將數組間對應的元素相乘,并返回乘積之和。語法格式如下:
=SUMPRODUCT(array1,array2,array3, ...)
——SUM是求和的意思,PRODUCT是相乘的意思,參數之間相乘之后再求和,你看,SUMPRODUCT確實人如其名了。
總結起來,SUMPRODUCT函數具有以下三個特點:
1> 它本身默認執行數組運算。
2> 它會將參數中非數值型的數組元素作為0處理。
3> 參數必須有相同的尺寸,否則返回錯誤值。
特點解析
看完了SUMPRODUCT的簡歷,想必很多朋友是霧里看花,僅僅對它有個模糊的認知,它的這些特點是啥意思?它到底能夠勝任什么樣子的工作?其實并不了然。
打個響指,我舉幾個例子。
如上圖所示的數據表,C列是商品單價,D列是銷售數量,現在需要在C9單元格計算銷售總額。
C9輸入以下公式,即可得出結果11620.60
=SUMPRODUCT(C3:C7, D3:D7)
這便是一個簡單的SUMPRODUCT函數了。
它的運算過程是:C3:C7和D3:D7兩個區域數組內的元素分別相乘,也就是C3*D3,C4*D4,C5*D5……直至C7*D7
等于先將每個商品的銷售金額計算出來,最后匯總求和。
由于SUMPRODUCT函數第一個特點,本身是支持數組間運算的,所以雖然該公式執行了多項運算,但并不需要按數組三鍵
有的朋友說啦,公式也可以寫成這樣:
=SUMPRODUCT(C3:C7*D3:D7)
或者使用以下數組公式,也是可以的。
=SUM(C3:C7*D3:D7)
那么這三個公式之間有什么區別呢?
首先,大部分情況下,SUMPRODUCT函數都不需要數組三鍵結束公式輸入即可執行數組運算,而SUM函數是需要的。
其次,就要說到SUMPRODUCT函數另一個非常重要的特點了。
……
我們將上面的表稍做改動,將“鋼筆”的銷售數量更改為:暫未統計。同樣需要在C9單元格計算銷售總額。
這時候,如果使用公式:
=SUMPRODUCT(C3:C7*D3:D7)
或者數組公式:
=SUM(C3:C7*D3:D7)
都將返回錯誤值VALUE!
返回錯誤值的原因在于D4單元格“暫未統計”為文本值,文本值是無法直接參與數學運算的,于是C4*D4返回錯誤值VALUE!,進而造成整個公式的結果返回錯誤值。
而使用以下公式就沒有這方面的困擾,會直接返回正確結果:
=SUMPRODUCT(C3:C7,D3:D7)
這便是SUMPRODUCT函數的第二個特點:將非數值型的數組元素作為0處理。
以該示例來說,D4單元格的值“暫未統計”為文本,并非數值,SUMPRODUCT將其主動視為零,于是C4*D4,結果亦為零,其余數組元素照常計算,得出11385.60的結果。
需要特別說明的是,SUMPRODUCT將非數值型的數組元素作為0處理,所謂的非數值型數組元素,包含邏輯值、文本,但并不包含錯誤值,如果數組元素中包含錯誤值,該公式亦返回錯誤值,比如該示例的第一條公式。
……
說完了SUMPRODUCT函數的兩個特點,我們就再來聊聊它的第三個特點:數組參數必須有相同的尺寸,否則返回錯誤值。
我們依然用上述圖片的例題為例,繼續計算商品的銷售總額。如果我們在C9輸入公式:
=SUMPRODUCT(C3:C7,D3:D6)
結果會是怎么樣的呢?
錯誤值:VALUE!
為什么?
細心的你肯定已經注意到了,兩個區域數組,C3:C7明顯顯比D3:D6多了一個元素,C3和D3結對子,C4和D4結對子……那么C7和誰結對子呢?女人們都嫁了,結果剩下一個光棍,這日子沒法過了!一個蘿卜一個坑,只有蘿卜沒有坑,這不是要蘿卜死嗎?
——于是SUMPRODUCT就不高興了,它給你一個錯誤值VALUE!,明確告訴你,和諧時代幸福歲月,日子不能這么過。
這就是SUMPRODUCT函數的第三個特點:數組參數必須有相同的尺寸,否則返回錯誤值。
下面是一道練習題,你看看,能用SUMPRODUCT函數做出來嗎?
圖文制作:看見星光
金同東