1.2 数学和三角函数

1.2.1 SUM()函数

SUM()函数是最基本的函数,简单的、复杂的工作表只要涉及计算多个数字之和时便要用到SUM()函数。本节所介绍的SUM()函数不仅仅只是普通的求和,实例中将涉及求和的更高层次——数组运算。

关于数组,是用于建立可产生多个结果,或可对存放在行和列中的一组参数进行运算的单个公式,我们将在本章后面的小节中进行讲解,这里所谈的数组,只是要求当用户待公式输入完毕过后,同时按下键盘上的“Ctrl+Shift+Enter”组合键,结束输入,公式便成为数组公式,在一对大括号({})里,表示该公式执行的是数组运算。读者先在这里接受数组的形象,明白在一些什么地方会出现数组应用,再结合后面的知识,定能揣透数组应用的精髓。

请读者打开“配套光盘\第1 章\xls\数学函数.xls”文件,单击进入“SUM”工作表,本工作表中有关于SUM()函数的详细应用实例,可结合本节内容一起操作一遍。

SUM()函数的功能与表达式如图1.20所示。

SUM()参数引用

(1)直接输入到参数表中的数字。

如在单元格中输入公式:

=SUM(1,3,5,7,9)

用数字1,3,5,7,9作为SUM()的参数,按Enter键后,求和结果为“25”,如图1.21所示。

图1.20 SUM函数的功能与表达式

图1.21 直接输入参数值

(2)连续区域求和。

分别在F16、C22单元格中输入SUM()函数,将光标置于函数的小括号中,再用鼠标水平方向或垂直方向拖拉,其求和区域范围会出现在函数后面的小括号中,如图1.22所示,输入结束按Enter键后,就会得出求和结果。

(3)在D28单元格插入函数SUM(),将光标置于函数的小括号中,再用鼠标拖拉单元格区域C25:C26,接下来输入半角“,”号,再用鼠标拖拉单元格区域D26:D27,按Enter键后,得出结果1400,如图1.23所示。

图1.22 连续区域求和

图1.23 多区域求和

(4)在D34单元格中输入公式:

      =SUM(MIN(C31:C33),D31:D33)

在SUM()函数的小括号中,有一个参数是求最小值函数MIN()。MIN(C31:C33)的意思是求出单元格区域C31:C33中的最小值,并将其和单元格区域D31:D33作为SUM()函数的两个参数。按Enter键后,计算结果为1600,如图1.24所示。

示例一

如图1.25所示,A2:A6中的数据是“-5,15,30,’5,TRUE”。

图1.24 以函数作为参数求和

图1.25 A2:A6中的数据

利用上述数据,可利用SUM()函数进行求和操作,如图1.26所示。

图1.26 普通求和公式

示例二

本示例是一个数组应用,体现SUM()函数的查找功能。

如图1.27所示,求品名为“冰箱”,颜色为“淡蓝”的数量和。

注意公式中“*”号的用法技巧。

在E65单元格,输入公式:

      =SUM((B58:B65="冰箱")*(C58:C65="淡蓝")*(D58:D65))

确认无误后,同时按下键盘上的“Ctrl+Shift+Enter”组合键结束输入,公式便成为数组公式,并计算出结果为32。

读者可对公式进行抹黑,按F9键来看看数组公式运算的结果是怎样的。

图1.27 数组公式应用

在公式编辑栏中,选定公式中(B58:B65="冰箱")的部分,按下F9键,可看到该部分在数组公式中的结果是{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE}。同理,(C58:C65="淡蓝")={TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE},(D58:D65)={21;13;22;15;11;17;12;16}。

选定由(B58:B65="冰箱")和(C58:C65="淡蓝")产生的逻辑值,按下F9 键,可看到运算结果是一个8行、1列的数组:{1;0;0;0;1;0;0;0}。

最后选定数组{1;0;0;0;1;0;0;0}和{21;13;22;15;11;17;12;16},按下F9键,结果是{21;0;0;0;11;0;0;0},可以看到SUM()函数最终是对该数组进行求和,将数值21与11相加,结果为32。

在整个公式中,“*”号起一个乘的作用,将逻辑值运算成数值,并将数值运算出最终结果32。SUM()函数在这里利用数组的方式有了一层查找的意思,将符合条件的值找出来进行求和。

示例三

本示例是一个嵌套函数的数组应用,体现SUM()函数与IF()函数结合对满足条件的数据执行求和功能,如图1.28所示。

所用的公式是:

      {=SUM(IF(D74:D81>500,1,0))}

图1.28 函数嵌套数组求和

E81用于存储判断求和结果。

图1.28所示的是一部分人的月收入额,现在要求统计出税额大于500的人数有多少。

公式使用了函数嵌套,IF()函数是一个逻辑运算符,执行真假值判断,根据逻辑计算的真假值,返回不同结果。外层的SUM()函数根据IF()判断的结果来求满足一定条件数据的和值。

我们先来看看公式中的嵌套函数IF(D74:D81>500,1,0),它用于判断单元格区域D74:D81中>500的数值。单个的IF()函数每次只能判断一次,即认为D74:D81区域中有>500的数据,就为1,否则就为0。

在数组应用的情况下,IF()函数需要进行多次判断,并将多次判断的结果存储到一个数组中。读者可将公式中IF(D74:D81>500,1,0)抹黑,按下F9键,将产生一个8行1列的数值数组{1;1;0;1;1;1;1;0},SUM()函数再来求和,结果为6。

SUM()函数在这里借助了IF()函数的判断功能,在数组运行模式下,对满足条件的单元格进行了求和。

示例四

本示例是一个嵌套函数的数组应用,依旧是SUM()函数与IF()函数结合,对满足条件的区域数据进行查找,将满足条件的所有数据累加求和。

如图1.29所示,是一部分人三个季度的加班计时,有的人是跨部门工作的,有重名上报情况,现在要统计指定姓名三个季度的累计数。

图1.29 重名累加求和

G96单元格 处在激活状态,右边会有一个下拉按钮,可选择B90:B97区域中的人名。

G97单元格用的是数组公式:

      { =SUM(IF(B90:B97=G96,C90:E97)}

公式的作用是进行统计求和。

在{ =SUM(IF(B90:B97=G96,C90:E97))}公式中,IF()函数用于判断区域B90:B97等于G96单元格中用户选择的人名,SUM()函数再对该人名在C90:E97区域进行查找所有与该人名有关的数据,并累计求和。

选择G96单元格的值为,G97单元格的值立即显示为419,即相当于公式=C90+D90+E90+C95+D95+E95=419。

下面我们来看看该公式是如何运算的。

对公式中的B90:B97=G96进行抹黑,按下F9键,结果为:{TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE},与B90:B97区域对应,可知TRUE逻辑值与B90、B95对应,其余为FALSE。

对公式中C90:E97进行抹黑,按下F9键,结果是C90:E97区域中的所有数据构成的数组:{123,112,99;107, 125,112;109,134,90;98,99,123;102,145,123;33,27,25;91,123,123;21,13,11}。

再将函数IF()和括号内的所有数据同时抹黑,按下F9键,显示结果是:{123,112,99;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE;33,27,25;FALSE,FALSE,FALS E;FALSE,FALSE,FALSE},仔细研究就会发现是逻辑值与数值数组相乘的结果,产生了新的数值、逻辑值数组。

SUM()再对上述相乘的数组求和,剔除了FALSE,结果为419。

其实,SUM()函数只是起到一个求和的作用。可利用嵌套关系,借助IF()函数的功能,普遍撒网。在C90:E97区域中,寻找所有符合姓名为“张三丰”的数据,进行累计求和。

提示

关于SUM()函数数组方式的运用,有两种情况。

条件求和,其格式为:= SUM((A5:A1000>100)*(B1:B1000=1)*(C1:C1000))

统计数目,其格式为:= SUM((A5:A1000>100)*(B1:B1000=1)