秋刀魚

在Excel中,可以進行各種各樣的求和計算,如簡單求和、單條件求和、多條件求和等。而在物流和財務管理Excel數據分析中,用得最多的則是單條件求和和多條件求和,對于這類問題,我們一般的做法是手工篩選再計算,然而當數據量很大的時候,就顯得非常不便了。
單條件求和
單條件求和的方法有很多,最常用的就是SUMIF函數。在Excel中,SUMIF函數的用法是根據指定條件對若干單元格、區域或引用求和。它的語法是:SUMIF(range,criteria,sum_range)。第一個參數:Range為條件區域;第二個參數:Criteria是求和條件,由數字、邏輯表達式等組成的判定條件;第三個參數:Sum_range為實際求和區域,需要求和的單元格、區域或引用。當省略第三個參數時,則條件區域就是實際求和區域。只有在區域中相應的單元格符合條件的情況下,sum_range 中的單元格才求和。如果忽略了 sum_range,則對區域中的單元格求和。
我們來舉一個實例。
以圖1表格為例,求數學成績超過95分的成績之和,如圖所示單元格中輸入=SUMIF(D2:D8,">=95"),沒有第三個參數,表示無可選項,意思是求D2到D8區域內,大于等于95的數值之和。結果是194,與表格中對應的數學成績之和一致。
多條件求和
提起多條件求和計數,我們最常用到的函數有SUMPRODUCT()和SUMIFS()。
SUMIFS()
SUMIFS()是Office2007新增函數,它的函數格式是SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)。
criteria_range1為計算關聯條件的第一個區域,criteria1為條件1,條件的形式為數字、表達式、單元格引用或者文本,可用來定義將對criteria_range1參數中的哪些單元格求和。比如條件可以表示為32、“>32”、B4、"蘋果"、或"32"。riteria_range2為計算關聯條件的第二個區域,criteria2為條件2。條件對必須成對出現,最多允許127個區域、條件對。sum_range 是需要求和的實際單元格。包括數字或包含數字的名稱、區域或單元格引用。忽略空白值和文本值。
SUMIFS()的使用和單條件求和的SUMIF()基本一樣。
SUMPRODUCT()
對于大部分同學只是會套用公式,而我們今天要揭開它的運算原理。
如果要求在C10單元格根據“產品”和“型號”兩個條件,統計銷售總數量,該怎么做呢(如圖4)?
公式如下:
=SUMPRODUCT((A3:A7=A10)*(B3:B7=B10)*C3:C7)
公式解析:
首先我們拋開SUMPRODUCT函數,看看括號內是怎么運算的。 (A3:A7=A10) 是一組數和一個數比較,當一組數分別和一個數進行運算,屬數組運算,會返回多個運算后的結果。即{TRUE;FALSE;TRUE;FALSE;TRUE}(TRUE說明二者相等,FALSE說明不相等);同理(B3:B7=B10)也會返回一組對比的結果{TRUE;FALSE;FALSE;FALSE;TRUE};如果兩組數方向是一樣的(同是一行或一列),兩組數會一一對應的計算。
而TRUE在進行四則運算時會當作1,FALSE當作0來運算,即TRUE*TRUE=1*1=1 TRUE*FALSE=1*0=0 FALSE*FALSE=0*0=0, {TRUE;FALSE;TRUE;FALSE;TRUE} *{TRUE;FALSE;FALSE;FALSE;TRUE}的結果是:{1;0;0;0;1}。
就本例,也就是說,如果兩個條件同時滿足,兩組相乘的結果是1,如果無法同時滿足兩個條件,計算的結果就是0。當{1;0;0;0;1}*C3:C7 時,同樣也會一對一進行相乘。結果變成{2;0;0;0;8},由此,我們用兩個對比條件和求和區域相乘,符合條件的數量保留,不符合的變成了0,剩下的就是對符合條件的數進行求和,也即本例最后的結果“10”。