「Excel技巧」sumproduct函數實例講解,讓你一看就懂

今天跟大家一起來認識一個很好用的函數:sumproduct函數。

sumproduct函數,sumproduct是由兩個英文單詞組成,即sum和product。Sum代表求和,product代表乘積,組成的sumproduct就是乘積之和。

現在我們來詳細說一下sumproduct函數的含義、語法,以及它的基礎應用。

一、sumproduct函數介紹

1、sumproduct函數——含義

Sumproduct函數,在定的幾組數組中,把數組間對應的元素相乘,最後返回乘積之和。

2、sumproduct函數——語法格式

=sumproduct(數組1,數組2,數組3, ……)

數組裡面的相應元素進行相乘後,再將乘積求和。

比如:

=SUMPRODUCT({1;2;3;4;5},{1;2;3;4;5})=1*1+2*2+3*3+4*4+5*5=25

注意:數組參數必須具有相同的維數,否則返回錯誤。意思就是如果第一個數組有5個元素,那麼其它數組也必須是5個元素。

當然,也可以這樣:

=sumproduct(區域1,區域2,區域3, ……)

比如:=SUMPRODUCT(A1:A3,B1:B3,C1:C3)=A1*B1*C1+A2*B2*C2+A3*B3*C3

同理,要求各個區域的大小和形式是一致。比如區域1是A1:A3,單列3行,那麼其它區域也必須是單列3行。

總結:Sumproduct是把每個區域或每個數組對應位置的值相乘,最後再將乘積求和。

二、sumproduct函數應用

現在我們要用示例具體來看下sumproduct函數的各種玩法。

以下面一張圖為數據源:


「Excel技巧」sumproduct函數實例講解,讓你一看就懂

現準備統計以下問題:

1、統計表中所有商品總的採購金額。

2、統計表中採購的水果總重量。  

3、統計表中採購的水果總金額。

4、統計表中單價30元以下的水果的採購總金額。

這四個問題歸納一下,第一個問題為簡單數組求和;第二、三個問題為單條件求和;第四個問題為多條件求和。

他們用sumproduct函數分別怎麼統計?看下面:

1、簡單數組求和

統計表中所有商品總的採購金額。

我們平時一般都是分兩步,先將單價*重量算出來,然後再用sum函數將結果求和。

如果是用sumproduct函數,一步就直接搞定,

公式為:=SUMPRODUCT(C3:C11,D3:D11)

或者,你也可以把公式裡的逗號(,)變乘號(*),即

=SUMPRODUCT(C3:C11*D3:D11)

「Excel技巧」sumproduct函數實例講解,讓你一看就懂

兩個公式結果是一樣的。

但是用逗號和用乘號的區別在於:

公式用逗號時,在求和統計時,可以將非數值型的數組元素,當0處理;

公式用乘號時,數組元素就不能存在無法計算的內容,如文本。

2、單條件求和

統計表中採購的水果總重量。

用sumproduct函數表示,即:

公式一:

=SUMPRODUCT((B3:B11="水果")*D3:D11)

公式二:

=SUMPRODUCT(N(B3:B11="水果"),D3:D11)

公式三:

=SUMPRODUCT((B3:B11="水果")*1,D3:D11)

「Excel技巧」sumproduct函數實例講解,讓你一看就懂

三個公式計算得到的結果都一樣,只是寫法不一樣。

公式中的(B3:B11="水果"),是一個條件,判斷區域B3:B11是否等於"水果",結果返回邏輯值true或是false。在這裡,這一條件表達式最終運算的結果為:

{FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE}

技巧提示:你在編輯欄中,單獨選中這一條件表達式,然後按F9鍵,就可以看到結果。

那麼經過這一步運算後,

公式一得到的是

=SUMPRODUCT({FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE}*D3:D11)

也就是兩個數組相乘,此時邏輯值直接參與運算符進行數值計算時,TRUE會自動轉化為1,FALSE轉化為0,

=SUMPRODUCT({0;1;0;1;1;0;1;0;0}*D3:D11),

將單元格區域D3:D11的數據代入進去,就是:

=SUMPRODUCT({0;1;0;1;1;0;1;0;0}*{20;20;60;40;30;20;10;15;30}),

到這裡就明白了,就是兩個數組相乘了。

公式二在經過條件表達式那步運算後,得到的是:

=SUMPRODUCT(N{FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE},D3:D11)

那公式二為什麼要在條件表達式外面加個N?

這裡的N是一個函數,用來將不是數值形式的值轉換為數值形式。

因為當sumproduct函數公式裡面用的是逗號時,就表示逗號兩邊是作為獨立的參數參與乘積,也就是條件表達式返回的邏輯值就作為獨立參數存在了,沒有直接參與任何

運算符(比如:乘號*)的運算,它是通過sumproduct內部機制進行乘積。上面我們說過sumproduct函數會將非數值型的數組元素,當0處理。

所以條件表達式返回的邏輯值不管是TRUE還是FALSE都會全部被直接當作0對待。

因此,我們才要用N函數來將邏輯值轉化為對應的數值1或0。

知道了公式一和公式二的意思後,公式三就不難理解了。

公式三在經過條件表達式那步運算後,得到的是:

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

在條件表達式後面加了*1,也是為了讓邏輯值直接參與運算符的運算,將其結果轉化為1或0的數組元素。

總結:

我們先把sumproduct函數逗號或乘號前後的數據用A、B來代替,表達為:

=SUMPRODUCT(A,B)和=SUMPRODUCT(A*B)。

當為逗號時,A、B必須同時都是數值或者數組,不能一個是數值,一個是數組;

當為乘號時,A、B可以同時都是數值或者數組,也可以一個是數值一個是數組。

那現在要統計採購的水果總金額,公式怎麼寫,懂了吧?

直接見下圖:

「Excel技巧」sumproduct函數實例講解,讓你一看就懂

3、多條件求和

統計表中單價30元以下的水果的採購總金額。

公式:

=SUMPRODUCT((B3:B11="水果")*(C3:C11<30)*C3:C11*D3:D11)

總結:

SUMPRODUCT多條件統計,不管條件有多少,我們只管在公式裡,將條件用括號括起來,再用乘號(*)把各個條件連接起來就行了。

今天關於sumproduct函數的基礎應用就說到這了。這個函數還有很多其它用法,大家可以去研究一下。下次我們一起來討論。


分享到:


相關文章: