標籤:

函數篇:被遺忘的SUMPRODUCT

Excel辦公,讓職場更輕鬆!

隨著SUMIFS、COUNTIFS等一些函數的出現,函數SUMPRODUCT漸漸被遺忘,由於前者的運行速度比他快而被慢慢淡出了excel接觸者的視線。然並卵,我想說函數SUMPRODUCT的強大功能足以讓函數SUMIFS、COUNTIFS等失業,而數組公式函數SUMPRODUCT能取代函數SUM並且不需要按<Ctrl Shift Enter>三鍵結束。

一、函數語法解析

1、函數定義:

在給定的幾組數組中,將數組間對應的元素相乘,並返回乘積之和。

2、語法格式:

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

SUMPRODUCT(數組區域1,數組區域2,數組區域3,……)

3、參數說明:

array1:必需。其相應元素需要進行相乘並求和的第一個數組參數。

array2,array3,...:可選。2到255個數組參數,其相應元素需要進行相乘並求和。

二、擴展語法

1、多條件計數語法:

SUMPRODUCT((條件1區域="條件1")*(條件2區域="條件2")*(……))

2、多條件求和語法:

①、SUMPRODUCT((條件1區域="條件1")*(條件2區域="條件2")*(……)*求和區域)

②、SUMPRODUCT((條件1區域="條件1")*(條件2區域="條件2")*(……),求和區域)

3、求和語法中求和區域前使用「,」與「*」的區別:

多條件求和時,當求和區域中沒有文本時「,」與「*」可以通用;

當求和區域中有文本時使用「*」會返回錯誤值#VALUE!,故而只能使用「,」。

三、函數示例

1、基礎應用

01

文本數字求和

輸入公式:=SUMPRODUCT(--(B3:B9))

解析:該公式中兩個負號,一個負號是把文本型數字轉換成負數值,另一個負號是把負數值轉換成需要的正數。

當然轉換的方法有很多種,可以用「 0」、「-0」、「*1」、「/1」、「^1」等等,關鍵看你自己怎麼用。

有人覺得用函數SUMPRODUCT字元太長了,用函數SUM明顯字元少很多,該題中用函數SUM代替函數SUMPRODUCT,那就必須按Ctrl Shift Enter三鍵結束。

02

忽略文本求和

輸入公式:=SUMPRODUCT(A15:A22)

03

有文本的數組相乘

輸入公式:

=SUMPRODUCT(C29:C34,D29:D34)

解析:函數SUMPRODUCT將非數值型的數組元素作為0處理。

如果該題中用單一的函數SUM來解決,按三鍵結束是小事,會出現錯誤值#VALUE!。

函數SUM的參數為不能轉換成數字的文本,將會顯示錯誤。

函數SUM的解決方法:=SUM(IFERROR(C29:C34*D29:D34,"")),按三鍵結束。

04

單條件計數數

輸入公式:=SUMPRODUCT(--(B41:D47>=80))

解析:(B41:D47>=80)部分判斷條件是否成立,成立返回TRUE,不成立返回FALSE,

發生運算時TRUE相當於1,FALSE相當於0,

然後用函數SUMPRODUCT或函數SUM求和,

注意使用函數SUM時一定要按三鍵結束。

同樣的可以用「 0」、「-0」、「*1」、「/1」、「^1」等等來轉換。

05

單條件求和

輸入公式:

=SUMPRODUCT((B54:D60>=80)*B54:D60)

解析:(B54:D60>=80)部分判斷條件是否成立,成立返回TRUE,不成立返回FALSE,

再*B54:D60得到的就是滿足條件的,

最後用函數SUMPRODUCT或函數SUM求和,

注意使用函數SUM時一定要按三鍵結束。

得到邏輯值TRUE和FALSE後直接*B54:D60就已發生運算,如果像上題一樣用「 0」、「-0」、「*1」、「/1」、「^1」等等來轉換雖不影響結果,但明顯是多此一舉。

2、進階應用

01

單條件數組相乘

輸入公式:=SUMPRODUCT((A3:A8="燒烤")*C3:C8*D3:D8)

或者:=SUMPRODUCT((A3:A8="燒烤")*C3:C8,D3:D8)

02

多條件計數

輸入公式:=SUMPRODUCT((B15:B21="女")*(C15:C21>=60))

03

多條件求和

輸入公式:=SUMPRODUCT((B28:B34="女")*(C28:C34>=60)*C28:C34)

或者:=SUMPRODUCT((B28:B34="女")*(C28:C34>=60),C28:C34)

04

有條件的區間計數

輸入公式:=SUMPRODUCT((B41:B47="女")*(C41:C47>=60)*(C41:C47<=80))

05

有條件的區間求和

輸入公式:=SUMPRODUCT((B54:B60="女")*(C54:C60>=60)*(C54:C60<=80)*C54:C60)

或者:=SUMPRODUCT((B54:B60="女")*(C54:C60>=60)*(C54:C60<=80),C54:C60)

上述示例可以參照前面說的擴展語法格式來,也可以用函數SUMIFS、COUNTIFS來完成,關於這兩個函數的用法不再贅述,也可以用函數SUM代替函數SUMPRODUCT,需要注意的是要按三鍵結束。

3、組合應用

01

隔列求和

輸入公式:

=SUMPRODUCT((MOD(COLUMN(B:I),2)=0)*B3:I3)

02

零鈔的計算

註:第一行中的「元」是通過設置單元格格式自定義加上去的,若是直接輸入的「元」就要先提取數字或把「元」替換掉。

在C15單元格輸入公式:

=INT(($B15-SUMPRODUCT($A$14:B$14,$A15:B15) 1%%)/C$14),向右向下填充。

思路:當前面額張數=(工資-(已計算面額*已計算面額張數))/當前面額

解析:SUMPRODUCT($A$14:B$14,$A15:B15)部分算出了左側單元格中已經計算張數的金額,用B列的工資減去這個金額,然後除以當前的面額,再用INT函數取整就可以得到對應面額的鈔票數量。

留個問題:為什麼要加1%%呢?加1%、1%%%等可不可以呢?不加又可不可以呢?

03

多條件求不重複的個數

輸入公式:

=SUMPRODUCT(1/COUNTIFS(A30:A38,A30:A38,B30:B38,B30:B38))

04

中式排名

輸入公式:

=SUMPRODUCT((C$45:C$50>C45)*(1/(COUNTIF(C$45:C$50,C$45:C$50)))) 1

05

包含求和

①、求姓名中包含6,性別為男的銷售額之和

輸入公式:

=SUMPRODUCT(ISNUMBER(FIND("6",A57:A62))*(B57:B62="男")*C57:C62)

或者:=SUMPRODUCT(ISNUMBER(FIND("6",A57:A62))*(B57:B62="男"),C57:C62)

解析:函數SUMPRODUCT不能使用通配符,故而與函數FIND組合實現包含求和功能。

函數SUMIFS通配符解法:=SUMIFS(C57:C62,A57:A62,"*6*",B57:B62,"男")

②、求姓名中有波形符~的銷售額之和

輸入公式:

=SUMPRODUCT(ISNUMBER(FIND("~",A57:A62))*C57:C62)

解析:函數SUMPRODUCT不能使用通配符,故而與函數FIND組合實現包含求和功能。

函數SUMIF通配符解法:

=SUMIF(A57:A62,"*~~*",C57:C62)

四、注意事項

①、數組參數必須具有相同的維數。否則,函數SUMPRODUCT將返回#VALUE!錯誤值。

②、函數SUMPRODUCT將非數值型的數組元素作為0處理。

③、函數SUMPRODUCT不能使用通配符,但可以與函數FIND組合實現包含功能。

④、函數SUMPRODUCT是不用按<Ctrl Shift Enter>三鍵結束的數組運算函數。

作者:仰望星空


推薦閱讀:

office excel最常用函數公式技巧搜集大全(13.12.09更新)17
使用PyTorch從零開始構建Elman循環神經網路
Excel函數應用之數學和三角函數
Excel公式與函數之美11:小而美的函數之SMALL函數
MDETERM 函數 (三角與數學函數)

TAG:函數 | 遺忘 |