位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

如何使用Sumproduct函數?

提問人:周麗平發(fā)布時間:2021-08-16

一、sumproduct函數的含義

Sumproduct函數的適用范圍,在給定的幾組數組中,然后把數組間對應的元素相乘,最后返回乘積之和。

從字面上可以看出,sumproduct有兩個英文單詞組成,sum是和,product是積,所以是乘積之和的意思。

image.png

二、sumproduct函數的語法格式

=SUMPRODUCT(array1,array2,array3, ...)Array為數組。

image.png

三、sumproduct函數案列——基礎用法

1、當sumproduct函數中的參數只有一個數組時,即對數組{1;2;3;4;5;6;7}進行求和,1+2+3+4+5+6+7=28。

image.png

2、當sumproduct函數中參數為兩個數組時,兩個數組的所有元素對應相乘。

公式=sumproduct(A2:A8,B2:B8)可轉化為

=sumproduct(數組1,數組2)

=sumproduct({1;2;3;4;5;6;7},{1;2;3;4;5;6;7})=1*1+2*2+3*3+4*4+5*5+6*6+7*7=140。

image.png


3、當sumproduct函數中參數為三個數組時,三個數組的所有元素對應相乘。

image.png

四、sumproduct函數案列——多條件求和

1、單條件求和——統計成都發(fā)貨平臺的發(fā)貨量。

=sumproduct((A2:A13="成都發(fā)貨平臺")*(B2:B13))

看到這公式你可能有疑惑,它跟語法格式好像不一樣,其實把它看做是只有一個參數。因為當函數中出現由TRUE和FALSE組成的邏輯數組時,這時公式要寫成這種格式=sumproduct((A2:A13="成都發(fā)貨平臺")*1,(B2:B13)),乘以1,把它轉化成數組才能參與運算。否則就寫成最上面的那種形式。

公式分解

=sumproduct({數組1}*{數組2})

=sumproduct({TRUE;…..TRUE;…..TRUE}*{11012;…41568;…12506})

=1*11012+1*41568+1*12506=65086。

image.png

有關sumif函數的用法,可以查看教程:

sumifs函數的使用方法及實例_sumif多條件求和

2、多條件求和——求當發(fā)貨平臺為成都,收貨平臺為重慶的發(fā)貨量。

=SUMPRODUCT((A2:A13="成都發(fā)貨平臺")*(C2:C13="重慶發(fā)貨平臺")*(D2:D13))

image.png

有關sumifs函數的用法,可以查看教程

sumifs函數的使用方法及實例_sumif多條件求和

3、多條件求和——求成都發(fā)貨平臺和重慶發(fā)貨平臺的發(fā)貨量,只要滿足其中的一個條件

輸入公式=SUMPRODUCT(((A2:A13="成都發(fā)貨平臺")+(A2:A13="重慶發(fā)貨平臺")),(B2:B13))

注意:SUMPRODUCT(條件1*條件2*條件3...條件N)中 * :滿足所有條件;SUMPRODUCT(條件1+條件2+條件3...+條件N)中 + :滿足任一條件。

image.png

五、sumproduct函數案列——多條件計數

如圖,輸入公式=SUMPRODUCT((A2:A13="成都發(fā)貨平臺")*(C2:C13="重慶發(fā)貨平臺"))。利用sumproduct函數中TRUE和FALSE邏輯數組1和0的特效來計數。

公式解析=sumproduct({1;0;0;0;0;0;0;0;0;1;0;1}*{1;0;0;0;0;0;1;0;0;1;0;0})=2

image.png

六、sumproduct函數——實現有條件排名

輸入公式=SUMPRODUCT((D2<$D$2:$D$8)*1)+1

數組公式D2<$D$2:$D$8這里是由TRUE和FALSE組成的邏輯數組{FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE}轉化為1和0的數組{0;1;1;0;1;0;1}。

這里利用的是該成績和所以成績進行比較,通過測算高于該成績的成績,每次累加1。

image.png

七、sumproduct函數使用的注意點

1、sumproduct函數后面的參數必須是數組,即行和列的維度是一致的。參數維數不一致所以返回錯誤值#VALUE!

image.png

2、sumproduct函數,逗號分割的各個參數必須為數字型數據。

如果是判斷的結果邏輯值,就要乘1轉換為數字。

如果不用逗號,直接用*號連接,就相當于乘法運算,就不必添加*1。

image.png

繼續(xù)查找其他問題的答案?

回復(0)
返回頂部