close

400

別被SUMPRODUCT函數拖慢了你的Excel表格

示範檔

範例檔

400.XLSX

結果檔

Excel版中,由於SUMIF函數和COUNTIF函數只能設置一個條件,一個神奇的多條件求和和計數函數走上了歷史舞臺,它就是:

n  SUMPRODUCT函數

如下圖所示,要求在G3設置公式,統計出E3儲存格中日期、F2儲存格中商品名稱為T的銷售數量之和。

=SUMPRODUCT((A2:A100=E2)*(B2:B100=F2)*C2:C100)

image

SUMPRODUCT函數後來被很多同學運用的爐火純青,多條件求和變得不再是什麼難題。雖然知道這個函數運算速度慢,但一直也沒覺得有什麼,直到最近幾個同學的提問,才意識到這個函數的副作用有多麼的大。

最近在一些企業教育時,有幾位在場同學說自已的表格運算非常的慢,不知道是什麼原因。打開活頁簿後發現,工作表中到處是SUMPRODUCT函數設置的多條件求和公式。後來換成SUMIFS函數後,運算速度果然有所提升。

為了驗證SUMPRODUCT函數公式對表格運算速的影響,今天特意做了2個相同的表格(表格樣式同上圖一般),同樣有15000列來源資料,分別設置同樣數量的公式:

SUMPROUDCT函數公式

在「工作表2」工作表C2儲存格輸入公式:「=SUMPRODUCT((工作表1!$A$2:$A$15000=$A2) *(工作表1!$B$2:$B$15000=B$2)*工作表1!$C$2:$C$15000)」後,按Enter鍵,如下圖所示。

image

SUMIFS函數公式:

在「工作表2」工作表D2儲存格輸入公式:「=SUMIFS(工作表1!$C:$C,工作表1!$A:$A,A2,工作表1!$B:$B,B2)」後,按Enter鍵,如下圖所示。

image

經過VBA程式測試的結果是SUMIFS函數所需時間是37秒,而SUMRPODUCT所需時間是SUMIFS函數公式的6倍左右,也就是說SUMIFS函數的運算比SUMPRODUCT函數快6倍。

補充:自Excel 2007版開始,Excel新增了SUMIFS函數(多條件求和)COUNTIS函數(多條件計數),再加上樞紐分析表強大的分類匯總功能,所以SUMRPODUCT函數主導的多條件求和時代必須要結束了。但這不意味著SUMPRDUCT函數再無用武之地,比如直接支援陣列運算、支援來源資料二次處理後再對比、處理文字型數值求和等方面還會發揮作用。


arrow
arrow

    錦子老師 發表在 痞客邦 留言(0) 人氣()