首頁 > 軟體

Sumproduct函數的使用方法

2020-07-14 14:34:22

一、sumproduct函數的含義

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

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

二、sumproduct函數的語法格式

=SUMPRODUCT(array1,array2,array3, ...)Array為陣列。

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

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

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。

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

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

1、單條件求和——統計成都發貨平台的發貨量。

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

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

公式分解

=sumproduct({陣列1}*{陣列2})

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

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

有關sumif函數的用法,可以檢視教學:

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

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

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

有關sumifs函數的用法,可以檢視教學

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

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

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

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

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

如圖,輸入公式=SUMPRODUCT((A2:A13="成都發貨平台")*(C2:C13="重慶發貨平台"))。利用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

六、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。

七、sumproduct函數使用的注意點

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

2、sumproduct函數,逗號分割的各個引數必須為數位型資料。

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

如果不用逗號,直接用*號連線,就相當於乘法運算,就不必新增*1。


IT145.com E-mail:sddin#qq.com