SUMPRODUCT函式

SUMPRODUCT函式

函式名詞解釋:返回相應的數組或區域乘積的和。 說明:· 數組參數必須具有相同的維數,否則,函式 SUMPRODUCT 將返回錯誤值 #VALUE!。· 函式 SUMPRODUCT 將非數值型的數組元素作為 0 處理。 英語的意思SUM:【數】求和。PRODUCT:【數】(乘)積 20 is the product of 5 and 4.二十是五與四的乘積。SUMPRODUCT:組合的漢語意思是:乘積之和,在給定的幾組數組中,將數組間對應的元素相乘,並返回乘積之和。

語法

SUMPRODUCT(array1,array2,array3, ...)

Array1,array2,array3, ... 為 2 到 30 個數組,其相應元素需要進行相乘並求和。

示例

如果將示例複製到空白工作表中,可能會更易於理解該示例。

B C D E
1 Array1 Array1 Array2 Array2
2 3 4 2 7
3 8 6 6 7
4 1 9 5 3
公式 說明(結果)
=SUMPRODUCT(B2:C4,D2:E4) 兩個數組的所有元素對應相乘,然後把乘積相加,即3*2+4*7+8*6+6*7+1*5+9*3。(156)

數學函式SUMPRODUCT套用實例

一、基本功能

1.函式SUMPRODUCT的功能返回相應的區域或數組乘積的和。

2.基本格式SUMPRODUCT(數據1,數據2,……,數據30)

3.示例數據表A列 B列 C列 D列 E列數據1數據2數據3數據4數據52 3 4 12 105 5 6 5 209 7 8 #N/A 307 2 7 9 KL1 6 2 8 2

⑴基本計算

①區域計算要求:計算A、B、C三列對應數據乘積的和。公式:=SUMPRODUCT(A2:A6,B2:B6,C2:C6)計算方式:=A2*B2*C2+A3*B3*C3+A4*B4*C4+A5*B5*C5+A6*B6*C6即三個區域A2:A6,B2:B6,C2:C6同行數據積的和。返回值788。

②數組計算要求:把上面數據表中的三個區域A2:A6,B2:B6,C2:C6數據按一個區域一個數組,計算對應數組積的和。把A2:A6,B2:B6,C2:C6分別作為一個數組,即A2:A6表示為數組-{2;5;9;7;1}B2:B6表示為數組-{3;5;7;2;6}C2:C6表示為數組-{4;6;8;7;2}公式:

=SUMPRODUCT({2;5;9;7;1},{3;5;7;2;6},{4;6;8;7;2})

=788

注意:數組數據用大括弧{}括起來。行數據之間用分號";"分隔,如果是同一行的數據,用逗號","分隔。

⑵可能出現的錯誤

①編輯公式時,引用的數據區域大小不一致導致計算錯誤,返回值為#VALUE!。示例:在上面的數據表中,計算A列與B列數據區域積的和。公式:

=SUMPRODUCT(A2:A6,B2:B5)

=SUMPRODUCT(A2:A6,B2:B8)

都會返回錯誤值#VALUE!。所以在用SUMPRODUCT函式時,引用的數據區域大小要一致。

②數據區域中有錯誤值時,計算出現錯誤值。示例:在上面的數據表中,計算數據區域A2:A6與D2:D6對應積的和。公式:

=SUMPRODUCT(A2:A6,D2:D6)

因為D2:D6中有錯誤值#N/A,所以公式返回值為錯誤值#N/A。

③數據區域引用不能整列引用。示例:計算上面數據表中A2:A6和B2:B6區域對應數據積的和,正確公式為=SUMPRODUCT(A2:A6,B2:B6)則返回正確的計算值114。如果用公式

=SUMPRODUCT(A:A,B:B)

則返回錯誤值#NUM!。

④數據區域有文本,計算中系統默認文本值為0。示例:在上面數據表中,計算A2:A6和E2:E6區域中對應數據積的和。公式

=SUMPRODUCT(A2:A6,E2:E6)

返回值是392,其中E5是文本KL,則A5*E5=0。

二、用於多條件計數用數學函式SUMPRODUCT計算符合2個及以上條件的數據個數

⑴數據表如下數據表所示:

A B C
1 姓名 性別 職稱
2 A 中一
3 B 中二
4 C 中一
5 D 中一
6 E 中一
7 F 中二
8 G 中二
9 H 中一
10 I 中一
11 J 中一
計算結果 計算結果

統計表E列 F列 G列中一 中二男女要求:統計上面數據表中男、女性中分別是中一、中二的人數。如下圖片,A1:C11數據區域,在E1:G3區域統計男、女中中一和中二的人數是多少。⑵公式在數據統計區域中的F2單元格編輯如下公式:

=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))

向下複製到F3,向右複製到G3。

⑶公式分解及分析

①條件1——$B$2:$B$11=$E2在計算過程中,條件1是一個數組,返回多值,寫成公式如下:=$B$2:$B$11=$E$2具體操作:選中10個連續的單元格,輸入上述公式後,按Ctrl+Shift+回車鍵確認,返回10個邏輯判斷值——TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE。這10個邏輯判斷值構成一個新的由TRUE主FALSE組成的數組1。

②條件2——$C$2:$C$11=F$1與條件1相同,是一個數組,返回多值,寫成公式如下:=$C$2:$C$11=F$1具體操作:同樣的方法,選中對應的10連續單元格,輸入上述公式,按Ctrl+Shift+回車鍵確認,返回10個邏輯判斷值——TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE。這10個邏輯判斷值構成另一個新的由TRUE主FALSE組成的數組2。

③($B$2:$B$11=$E2)*($C$2:$C$11=F$1)由新構成的數組1乘以數組2,即:

=($B$2:$B$11=$E2)*($C$2:$C$11=F$1)

={數組1*數組2}

={ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*{ TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE }

={TRUE*TRUE;FALSE*FALSE;FALSE*TRUE;TRUE*TRUE;FALSE*TRUE;TRUE*FALSE; FALSE*FALSE;TRUE*TRUE;TRUE*TRUE; FALSE*TRUE}

={1;0;0;1;0;0;0;1;1;0}

其中, 邏輯值TRUE與FALSE參與計算時:

TRUE=1,FALSE=0,TRUE*TRUE=1,TRUE*FALSE=FALSE*TRUE=0,FALSE*FALSE=0

因此{數組1*數組2}={1;0;0;1;0;0;0;1;1;0}由1和0構成了一個新的數組3。

④=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))

函式SUMPRODUCT對新的數組3中的所有數據求和。即:

=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))=SUMPRODUCT({數組1*數組2})

=SUMPRODUCT({數組3})

=SUMPRODUCT({1;0;0;1;0;0;0;1;1;0})

=4

這裡需要說明的是,公式編輯按照函式SUMPRODUCT的一般格式,可以編輯如下等效的公式:

=SUMPRODUCT(($B$2:$B$11=$E2)*1,($C$2:$C$11=F$1)*1)

函式SUMPRODUCT的作用是對數組($B$2:$B$11=$E2)與數組($C$2:$C$11=F$1))計算其乘積的和,即:

=SUMPRODUCT(($B$2:$B$11=$E2)*1,($C$2:$C$11=F$1)*1)

=SUMPRODUCT({ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*1,{ TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE }*1)

=SUMPRODUCT({1;0;0;1;0;1;0;1;1;0},{1;0;1;1;1;0;0;1;1;1})

=SUMPRODUCT({1*1;0*0;0*1;1*1;0*1;1*0;0*0;1*1;1*1,0*1})

=SUMPRODUCT({1;0;0;1;0;0;0;1;1,0})

=4

注意:TRUE*1=1,FALSE*1=1*FALSE=0,TRUE*0=0*TRUE=0 。數組中用分號分隔,表示數組是一列數組,分號相當於換行。兩個數組相乘是同一行的對應兩個數相乘。

三、用於多條件求和。對於計算符合某一個條件的數據求和,可以用SUMIF函式來解決。如果要計算符合2個以上條件的數據求和,用SUMIF函式就不能夠完成了。這就可以用函式SUMPRODUCT。

用函式SUMPRODUCT計算符合多條件的數據和,基本格式是:SUMPRODUCT(條件1*條件2*……,求和數據區域)

數據表

A B C D
1 姓名 性別 職稱 課時
2 A 中一 15
3 B 中二 16
4 C 中一 14
5 D 中一 13
6 E 中一 18
7 F 中二 15
8 G 中二 16
9 H 中一 14
10 I 中一 17
11 J 中一 18

要求:計算男、女分別是中一或中二的總課時數。

統計表F列 G列 H列 中一 中二男女在G2中編輯公式

=SUMPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11))

回車確認後向下向右複製公式到H3單元格。

公式釋義:性別區域$B$2:$B$11中滿足條件男和職稱區域$C$2:$C$11中滿足條件中一的數據,通過判斷計算後由1和0組成一個新的數據區域,這個新的數據區域再和課時區域$D$2:$D$11中的對應數據相乘後求和。

公式對比:到此,對函式SUMPRODUCT用來計數和求和,試作一對比

計數公式

=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))

求和公式

=SUMPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11)

不難看出,求和公式在原來的計數公式中,在相同判斷條件下,增加了一個求和的數據區域。也就是說,用函式SUMPRODUCT求和,函式需要的參數一個是進行判斷的條件,另一個是用來求和的數據區域。

四、用於排名次如下A列數據:A列 B列數據 名次56658965567890526090需要排出區域A2:A11中10個數據的名次。在B2中編輯公式:

=SUMPRODUCT((A2<$A$2:$A$11)*1)+1

向下複製到單元格B11。

公式釋義:用A2到$A$2:$A$11(用絕對引用$保證公式在向下複製時整個數據區域不發生變化)中進行比較,當A2<$A$2:$A$11成立時,則返回TRUE;如果A2<$A$2:$A$11不成立就返回FALSE。所以數組公式=A2<$A$2:$A$11返回一個由TRUE和FALSE構成的邏輯數組。把數組公式=A2<$A$2:$A$11構成的邏輯數組乘1,得到一個由0和1構成的新數組。SUMPRODUCT再對由0和1構成的新數組求和,表示在數據區域$A$2:$A$11中比A2大的數據個數。所以A2在數據區域$A$2:$A$11內排列的位次應該是比A2大的數據個數+1,即公式=數據區域$A$2:$A$11內比A2大的個數+1

=SUMPRODUCT((A2<$A$2:$A$11)*1)+1

公式向下複製,則依次對$A$2:$A$11中每一個數據重複進行上述判斷求和,從而排出數據區域$A$2:$A$11中每一個數據的位次。很顯然,對於數據區域$A$2:$A$11中相同的數,判斷和計算結果是相同的,也就是排出來的位次相同。所以用SUMPRODUCT函式排出來的名次,與直接用RANK函式排出來的名次是一樣的,有重複名次,但最大位次數不超過數據區域$A$2:$A$11中的總數據個數。

如果希望排出的位次沒有重複,而數據區域$A$2:$A$11中相同數據的位次按數據出現的先後順序排位,可以用下面的公式:

=SUMPRODUCT((A2<$A$2:$A$11)*1)+COUNTIF($A$2:A2,A2)

公式向下複製即可。兩種排名對比如下表所示:A列 B列 C列數據 名次重複順序名次56 8 865 5 589 3 365 5 656 8 978 4 490 1 152 10 1060 7 790 1 2

綜上所述,對於多條件的計數或者求和,可以用數學函式SUMPRODUCT來比較方便的解決。在使用函式時,進行數據引用的單元格區域或數組應該大小一致,不能採取整列引用(形如A:A)。如果跨表使用函式SUMPRODUCT,與其它函式跨表引用數據一樣,數據區域前面應該標明工作表名稱。[color=#EE1D24,strength=3);]計數公式中最關鍵的是確定計數的判斷條件。求和公式在原來的計數公式中,在相同判斷條件下增加了一個求和的數據區域。用函式SUMPRODUCT求和,函式需要的參數一個是進行判斷的條件,另一個是用來求和的數據區域。

對於sumproduct使用過程中*1的解釋說明

sumproduct函式,逗號分割的各個參數必須為數字型數據,如果是判斷的結果邏輯值,就要乘1轉換為數字。

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

相關搜尋

熱門詞條

聯絡我們