SUM函數(shù)可能是Excel中最最普通平常的函數(shù)了,它對(duì)數(shù)值求和。只要是使用過(guò)Excel的人,可能或多或少都接觸過(guò)SUM函數(shù)。
什么情況下使用SUM函數(shù)?
SUM函數(shù)計(jì)算數(shù)值的和,它能夠:
求單元格區(qū)域數(shù)值之和
求交叉區(qū)域的單元格數(shù)值之和
跨工作表求和
逐行匯總
自動(dòng)擴(kuò)展求和單元格
在數(shù)組公式中使用SUM函數(shù)
求偶數(shù)行單元格數(shù)值之和
對(duì)單元格區(qū)域中的正值求和
SUM函數(shù)語(yǔ)法
SUM函數(shù)最多有255個(gè)參數(shù),其語(yǔ)法如下:
SUM(Number1,[Number2],…)
Number1: 待求和的數(shù)值。邏輯值和文本可以作為其參數(shù),但在求和時(shí)會(huì)被忽略。
用于求和的參數(shù)可以是單元格或單元格區(qū)域,也可以是公式。
SUM函數(shù)陷阱
SUM函數(shù)在遇到數(shù)字文本時(shí)將其轉(zhuǎn)換為數(shù)字,將TRUE轉(zhuǎn)換為1,F(xiàn)ALSE轉(zhuǎn)換為0,將日期文本轉(zhuǎn)換成數(shù)字序號(hào)。
下面兩個(gè)公式的結(jié)果均為3:
=SUM(1,1,1)
=SUM(1,1,”1”)
下面兩個(gè)公式的結(jié)果為2.5:
=SUM(1.5,TRUE)
=SUM(1.5,9=3*3)
下面公式的結(jié)果為42976:
=SUM(“2017-8-29”)
有些情形下,在求和公式所在單元格之上插入新行時(shí),SUM函數(shù)有時(shí)會(huì)忽略該行。
示例1: 求單元格區(qū)域數(shù)值之和
要求出各地區(qū)在一季度的銷(xiāo)量總和,在單元格B7中的公式為:
=SUM(B2:D5)
技巧:在放置求和公式的單元格中按Alt+=鍵,會(huì)自動(dòng)插入SUM函數(shù)。
示例2: 求交叉區(qū)域的單元格數(shù)值之和
SUM函數(shù)能夠計(jì)算交叉區(qū)域的單元格數(shù)值之和。所謂交叉區(qū)域,就是兩個(gè)或多個(gè)單元格區(qū)域共同的部分區(qū)域。Excel使用空格作為交叉運(yùn)算符。下面的公式計(jì)算單元格區(qū)域C3:F5和E3:F7交叉區(qū)域E3:F5中的數(shù)值之和:
=SUM(C3:F5 E3:F7)
示例3: 跨工作表求和
有時(shí)候,要求多個(gè)工作表中相同單元格區(qū)域的數(shù)值之和。例如下圖所示的工作表,要求一月至三月東區(qū)3個(gè)店的商品之和,工作表中的格式和位置相同,可以使用下面的公式:
=SUM(一月:三月!B2)
對(duì)于這樣按每月或者每周或者每日出現(xiàn)的結(jié)構(gòu)相同的工作表,使用SUM函數(shù)進(jìn)行跨工作表匯總非常有用。
示例4: 逐行匯總
如下圖所示的工作表,要求逐行匯總庫(kù)存量,即上一日的庫(kù)存量與當(dāng)日出庫(kù)或入庫(kù)量匯總的值,單元格D3中的公式為:
=SUM(C$3:C3)
注意到公式中的C$3為混合引用,即行為絕對(duì)引用,公式下拉時(shí)該值不會(huì)變化,這確保了計(jì)算的起始點(diǎn)總是在第3行。將公式下拉至D7即可在每一行匯總庫(kù)存量,在單元格D7中的公式為:
=SUM(C$3:C7)
示例5: 自動(dòng)擴(kuò)展求和單元格
有時(shí),在被求和的單元格中插入一行時(shí),可能會(huì)忽略該單元格的值。如下圖所示的工作表,在行6之上插入一行,新行中的單元格可能不會(huì)包括在SUM函數(shù)中。然而,如果使用公式:
=SUM(C1:OFFSET(C6,-1,0))
求和公式會(huì)自動(dòng)包括從單元格C1至公式所在單元格之上的所有單元格。
示例6: 在數(shù)組公式中使用SUM函數(shù)
如果要求一組數(shù)值中最大或者最小的幾個(gè)值之和,那么可以在數(shù)組公式使用SUM函數(shù)。下圖所示為求單元格 A1:A7中最大的兩個(gè)值之和,即80和90之和,在單元格B1的中公式為:
=SUM(LARGE(A1:A6,{1,2}))
該公式為數(shù)組公式,因此輸入完后要按Ctrl+Shift+Enter組合鍵,Excel會(huì)自動(dòng)在公式兩邊加上花括號(hào)。
也可以使用數(shù)組公式:
=SUM(LARGE(A1:A6,ROW(INDIRECT(“1:2”))))
使用ROW函數(shù)與INDIRECT函數(shù)的組合,獲取所要的前2個(gè)最大的數(shù)值,更靈活。
也可以在某個(gè)單元格中輸入要求獲取前幾個(gè)最大的數(shù)值,然后在公式中引用該單元格。如果在單元格C1中放置要獲取的最大數(shù)值個(gè)數(shù),那么使用數(shù)組公式:
=SUM(LARGE(A1:A6,ROW(INDIRECT(“1″& C1))))
單元格C1中的數(shù)組充當(dāng)變量,當(dāng)修改其中的數(shù)值時(shí),相應(yīng)的結(jié)果隨之改變。
示例7: 對(duì)單元格區(qū)域中的正值求和
如下圖所示的工作表,命名區(qū)域Data為單元格區(qū)域A1:C13,數(shù)組公式:
=SUM((Data>0)*Data)
求出Data中的正值之和。公式測(cè)試區(qū)域中的每個(gè)值是否大于0,若大于0則Data>0返回TRUE(即1),否則返回FALSE(即0)。這樣,SUM函數(shù)的參數(shù)就只包括正數(shù)。
示例8: 求偶數(shù)行的單元格數(shù)值之和
如下圖所示的工作表,要求rngData區(qū)域中偶數(shù)行的單元格數(shù)值之和,使用數(shù)組公式:
=SUM(IF(MOD(ROW(rngData),2)=0,rngData,0))
對(duì)于rngData區(qū)域中的每個(gè)單元格,如果處在偶數(shù)行,那么MOD(ROW(rngData),2)將返回0,此時(shí)該單元格中的值會(huì)被求和,否則以0代替該行單元格中的值,即該單元格中的值不會(huì)被求和。
如果要求每隔n行中的單元格之和,那么可以使用數(shù)組公式:
=SUM(IF(MOD(ROW(rngData),n)=1,rngData,0))
將第1行、第n+1行等中的數(shù)值相加。