關於SUMPRODUCT函數,想必大家都是熟悉不過的,但網上對於這個函數的詳細教程比較少,特別是公式裡面的星號(*)和逗號(,),很多人都是分不清的,什麼時候用逗號,什麼時候用星號,很多人都不懂,所以今天的教程會跟大家詳細的講解SUMPRODUCT函數,讓每一個人都能看懂。
一、SUMPRODUCT函數的功能。
從字面上來看,SUMPRODUCT由2個英文單詞組成。SUM是和,PRODUCT是積,所以就是乘積之和的意思。
官方給的定義是:SUMPRODUCT函數是在給定的幾組數組中,將數組間對應的元素相乘,並返回乘積之和。
二、SUMPRODUCT函數的語法。
SUMPRODUCT(array1, [array2], [array3], ...)。
其中,array1, [array2], [array3]為數組參數。
注意:
(1)數組參數必須具有相同的維數,否則,函數SUMPRODUCT將返回錯誤值#VALUE!。
(2)函數SUMPRODUCT將非數值型的數組元素作為0處理。
(3)如果只有1個數組,就直接對這個數組裡面的所有值相加,然後返回相加的結果。
三、單條件計數。
實例:統計下圖中有多少個「面膜」產品。
具體操作步驟如下:
1、選中H4單元格 -- 在編輯欄中輸入公式「=SUMPRODUCT(--($D$3:$D$11=G4))」 -- 按回車鍵回車即可。
2、動圖演示如下。
3、公式解析。
(1)$D$3:$D$11=G4:
D3:D11單元格區域是一個數組,判斷數組中的每一項是否跟G4單元格的內容「面膜」相等,如果相等,返回TRUE,否則,返回FALSE。此時公式得到的是一組邏輯值數組{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}。
(2)--($D$3:$D$11=G4):
在SUMPRODUCT函數中,邏輯值TRUE和FALSE會直接被當做0來處理,所以在前面加上兩個負號「--」將邏輯值TRUE轉成1,將邏輯值FALSE轉成0。此時公式得到的是一組1和0數組{1;0;0;1;0;0;0;0;0}。
(3)公式的計算過程如下圖。
四、單條件求和。
實例:統計下圖中「面膜」產品的銷售額總和。
具體操作步驟如下:
1、選中H4單元格 -- 在編輯欄中輸入公式「=SUMPRODUCT(--($D$3:$D$11=G4),E3:E11)」 -- 按回車鍵回車即可。
2、動圖演示如下。
3、公式解析。
(1)--($D$3:$D$11=G4):
D3:D11單元格區域是一個數組,判斷數組中的每一項是否跟G4單元格的內容「面膜」相等,如果相等,返回TRUE,否則,返回FALSE。此時公式得到的是一組邏輯值數組{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}。在SUMPRODUCT函數中,邏輯值TRUE和FALSE會直接被當做0來處理,所以在前面加上兩個負號「--」將邏輯值TRUE轉成1,將邏輯值FALSE轉成0。此時公式得到的是一組1和0數組{1;0;0;1;0;0;0;0;0}。
(2)公式的計算過程如下圖。
五、多條件求和。
實例:統計下圖中姓名為「李明芳」,產品為「面膜」的銷售額。
具體操作步驟如下:
1、選中I4單元格 -- 在編輯欄中輸入公式「=SUMPRODUCT(--($C$3:$C$11=G4),--($D$3:$D$11=H4),$E$3:$E$11)」-- 按回車鍵回車即可。
2、動圖演示如下。
3、公式解析。
(1)--($C$3:$C$11=G4),--($D$3:$D$11=H4):
先判斷C3:C11數組中的每一項是否跟G4單元格的內容「李明芳」相等,如果相等,返回TRUE,否則,返回FALSE。再判斷D3:D11數組中的每一項是否跟H4單元格的內容「面膜」相等,如果相等,返回TRUE,否則,返回FALSE。在SUMPRODUCT函數中,邏輯值TRUE和FALSE會直接被當做0來處理,所以在前面加上兩個負號「--」將邏輯值TRUE轉成1,將邏輯值FALSE轉成0。該公式返回的結果如下。
(2)公式的計算過程如下圖。
上面的公式我們也可以寫成「=SUMPRODUCT(($D$3:$D$11=H4)*($E$3:$E$11=I4)*$F$3:$F$11)」,得到的結果都是2655。
觀察上面兩條公式,不難發現,得到的結果是一樣的,但是第一條公式數組之間是用逗號隔開,第二條公式數組之間是用星號隔開,關於逗號和星號,有什麼區別呢?
公式一有3個參數,而公式二隻有1個參數。(判斷有幾個參數要看是不是用逗號去分隔開)。第一個公式中,三個區域相乘這一步是由函數來完成的,函數做了兩件事,先讓三個區域的數據對應相乘,再把乘積相加。在第二個公式中,三個區域相乘是由數組計算來完成的,函數隻做了一件事,就是把乘積值相加。
下圖中的J4單元格公式為:=SUMPRODUCT(--($D$2:$D$11=H4),--($E$2:$E$11=I4),$F$2:$F$11),該公式參數之間使用逗號隔開,得到的結果是正確的「2655」。J5單元格公式為:=SUMPRODUCT(($D$2:$D$11=H4)*($E$2:$E$11=I4)*$F$2:$F$11),該公式參數直接使用星號隔開,得到的結果是錯誤值「#VALUE!」。
第一個公式中用的是逗號(,),有3個獨立的參數。SUMPRODUCT函數首先讓3組數據對應相乘,相乘的時候會檢查數據並把非數值型數據作為0處理,然後再把乘積相加。因此,D2「姓名」和E2「產品」會當成0來處理,公式可以得到正確結果。
第二個公式中使用星號(*),結果錯誤,為什麼呢?因為計算的區域中D2「姓名」和E2「產品」是文本,文本是不能進行乘法運算的,SUMPRODUCT函數這時只負責把乘積相加。所以公式一開始就已經得到錯誤值「#VALUE!」了。
關於逗號和星號的區別,大家看了本篇文章應該有了更深的理解,如果您還有不懂之處,可以在評論區留言或私信找小編哦~
想要本期教程的練習文件,私信發送「011」即可獲取!
如果您覺得文章對您有幫助,可以給小編讚賞鼓勵哦,您的讚賞、關注、轉發、評論、點贊都是對小編的鼓勵與支持,謝謝您!