SUM函数你都知道么?
SUM函数可能是Excel中最最普通平常的函数了,它对数值求和。只要是使用过Excel的人,可能或多或少都接触过SUM函数。
什么情况下使用SUM函数?
SUM函数计算数值的和,它能够:
求单元格区域数值之和
求交叉区域的单元格数值之和
跨工作表求和
逐行汇总
自动扩展求和单元格
在数组公式中使用SUM函数
求偶数行单元格数值之和
对单元格区域中的正值求和
SUM函数语法
SUM函数最多有255个参数,其语法如下:
SUM(Number1,[Number2],…)
Number1: 待求和的数值。逻辑值和文本可以作为其参数,但在求和时会被忽略。
用于求和的参数可以是单元格或单元格区域,也可以是公式。
SUM函数陷阱
SUM函数在遇到数字文本时将其转换为数字,将TRUE转换为1,FALSE转换为0,将日期文本转换成数字序号。
下面两个公式的结果均为3:
=SUM(1,1,1)
=SUM(1,1,”1”)
下面两个公式的结果为2.5:
=SUM(1.5,TRUE)
=SUM(1.5,9=3*3)
下面公式的结果为42976:
=SUM(“2017-8-29”)
有些情形下,在求和公式所在单元格之上插入新行时,SUM函数有时会忽略该行。
示例1: 求单元格区域数值之和
要求出各地区在一季度的销量总和,在单元格B7中的公式为:
=SUM(B2:D5)
技巧:在放置求和公式的单元格中按Alt+=键,会自动插入SUM函数。
示例2: 求交叉区域的单元格数值之和
SUM函数能够计算交叉区域的单元格数值之和。所谓交叉区域,就是两个或多个单元格区域共同的部分区域。Excel使用空格作为交叉运算符。下面的公式计算单元格区域C3:F5和E3:F7交叉区域E3:F5中的数值之和:
=SUM(C3:F5 E3:F7)
示例3: 跨工作表求和
有时候,要求多个工作表中相同单元格区域的数值之和。例如下图所示的工作表,要求一月至三月东区3个店的商品之和,工作表中的格式和位置相同,可以使用下面的公式:
=SUM(一月:三月!B2)
对于这样按每月或者每周或者每日出现的结构相同的工作表,使用SUM函数进行跨工作表汇总非常有用。
示例4: 逐行汇总
如下图所示的工作表,要求逐行汇总库存量,即上一日的库存量与当日出库或入库量汇总的值,单元格D3中的公式为:
=SUM(C$3:C3)
注意到公式中的C$3为混合引用,即行为绝对引用,公式下拉时该值不会变化,这确保了计算的起始点总是在第3行。将公式下拉至D7即可在每一行汇总库存量,在单元格D7中的公式为:
=SUM(C$3:C7)
示例5: 自动扩展求和单元格
有时,在被求和的单元格中插入一行时,可能会忽略该单元格的值。如下图所示的工作表,在行6之上插入一行,新行中的单元格可能不会包括在SUM函数中。然而,如果使用公式:
=SUM(C1:OFFSET(C6,-1,0))
求和公式会自动包括从单元格C1至公式所在单元格之上的所有单元格。
示例6: 在数组公式中使用SUM函数
如果要求一组数值中最大或者最小的几个值之和,那么可以在数组公式使用SUM函数。下图所示为求单元格 A1:A7中最大的两个值之和,即80和90之和,在单元格B1的中公式为:
=SUM(LARGE(A1:A6,{1,2}))
该公式为数组公式,因此输入完后要按Ctrl+Shift+Enter组合键,Excel会自动在公式两边加上花括号。
也可以使用数组公式:
=SUM(LARGE(A1:A6,ROW(INDIRECT(“1:2”))))
使用ROW函数与INDIRECT函数的组合,获取所要的前2个最大的数值,更灵活。
也可以在某个单元格中输入要求获取前几个最大的数值,然后在公式中引用该单元格。如果在单元格C1中放置要获取的最大数值个数,那么使用数组公式:
=SUM(LARGE(A1:A6,ROW(INDIRECT(“1″& C1))))
单元格C1中的数组充当变量,当修改其中的数值时,相应的结果随之改变。
示例7: 对单元格区域中的正值求和
如下图所示的工作表,命名区域Data为单元格区域A1:C13,数组公式:
=SUM((Data>0)*Data)
求出Data中的正值之和。公式测试区域中的每个值是否大于0,若大于0则Data>0返回TRUE(即1),否则返回FALSE(即0)。这样,SUM函数的参数就只包括正数。
示例8: 求偶数行的单元格数值之和
如下图所示的工作表,要求rngData区域中偶数行的单元格数值之和,使用数组公式:
=SUM(IF(MOD(ROW(rngData),2)=0,rngData,0))
对于rngData区域中的每个单元格,如果处在偶数行,那么MOD(ROW(rngData),2)将返回0,此时该单元格中的值会被求和,否则以0代替该行单元格中的值,即该单元格中的值不会被求和。
如果要求每隔n行中的单元格之和,那么可以使用数组公式:
=SUM(IF(MOD(ROW(rngData),n)=1,rngData,0))
将第1行、第n+1行等中的数值相加。