2021-05-12 14:32:11
Sumproduct函數的使用方法
一、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函數的用法,可以檢視教學:
2、多條件求和——求當發貨平臺為成都,收貨平台為重慶的發貨量。
=SUMPRODUCT((A2:A13="成都發貨平台")*(C2:C13="重慶發貨平台")*(D2:D13))
有關sumifs函數的用法,可以檢視教學
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。
相關文章