输入数组公式首先必须选择用来存放结果的单元格区域(可以是一个单元格),在编辑栏输入公式,然后按Ctrl+Shift+Enter组合键锁定数组公式,Excel将在公式两边自动加上花括号“{}”。注意:不要自己键入花括号,否则,Excel认为输入的是一个正文标签。
编辑或删除数组公式编辑数组公式时,须选取数组区域并且激活编辑栏,公式两边的花括号将消失,然后编辑公式,最后按Ctrl+Shift+Enter键。选取数组公式所占有的区域后,按Delete键即可删除数组公式。
下面介绍几个使用数组公式的例子。
1、有如图所示的工作表,需分别计算出两个班的男女生人数。
单元格B22中的公式为:=SUM((A2:A20=\"一1班\")*(D2:D20=\"男\")),再按Ctrl+Shift+Enter键。这个数组公式创建了一个条件求和,若在A2:A20中出现值“一1班”,则返回一个逻辑值“true”,值为“1”,若D2:D20中出现值“男”,也返回一个逻辑值“true”,值为“1”,则数组公式将与其相对应的值相乘并累加,若是1*1=1,则加1,若是其他就返回1*0=0或是0*1=0,则累加零。(虽然数组A2:A20和D2:D20均在工作表中,但其相乘的数组A2:A20和D2:D20不在工作表中,因此必须使用数组公式)。
求女生一1班的女生人数也是一样,把公式改为:=SUM((A2:A20=\"一1班\")*(D2:D20=\"女\")),当然,要是求一2班或是其它班级的男女生数也是一样的道理,请大家自己领会。
2、在统计考试成绩的时候,有可能要统计出90—100分、80—89分、70—79分等各分数段的人数,并计算出占班级人数的百分比,这时也要利用数组公式更方便。同样以下面的工作表作为例子:要求出分数在70—80分之间的人数。
在B24中输入一个数组公式:=SUM((E2:E20>=70)*(E2:E20<=80)) ,再按Ctrl+Shift+Enter键。这个数组公式也创建一个条件求和,若是E2:E20当中的成绩>=70并且E2:E20当中的成绩<=80,返回1*1=1,sum就累加1,反之1*0=0或是0*1=0,就累加0。如图:
3、求及格人数或是优秀人数的时候,单科的往往比较简单,用一个简单的公式就行了。但是要求双科的及格人数或是双科的优秀人数,就要用数组函数才能做到了。同样以上面的工作表为例,计算出语文、数学双科的优秀人数。
在B25中输入数组公式:=SUM((E2:E20>=80)*(F2:F20>=80)),再按Ctrl+Shift+Enter键。在这个公式中,若是E2:E20和F2:F20中的两个值都满足>=80(大于或等于80),则返回一个值1*1=1,sum就累加1,要是两列中有一个不能满足>=80(大于或等于80),则返回1*0=0或是0*1=0,就累加0。如图:
当然,这是两个班的双科优秀人数,要是只求一个班的,则要再加一个条件,使数组公式改为:=SUM((E2:E20>=80)*(F2:F20>=80)*(A2:A20=“一1班”)),求一2班的则要把后面的“一1班”改为“一2班”,其它的情况下大家应该能灵活运用。求双科及格人数如图:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数组就是单元的集合或是一组处理的值集合。可以写一个数组公式,即输入一个单个的公式,它执行多
个输入的操作并产生多个结果——每个结果显示在一个单元中。数组公式可以看成是有多重数值的公式。与单值公式的不同之处在于它可以产生一个以上的结果。一个数组公式可以占用一个或多个单元。数组的元素可多达6500个。
7.12.1 了解数组
首先我们通过几个例子来说明数组是如何工作的。我们可以从图7-35中看到,在“B”列中的数据为销售量,在“C”列中的数据是销售单价,要求计算出每种产品的销售额和总的销售金额,一般的做法是计算出每种产品的销售额,然后再计算出总的销售额。但是如果我们改用数组,就可以只键入一个公式来完成这些运算。
输入数组公式的步骤为:
选定要存入公式的单元格,在本例中我们选择“D4”单元格。输入公式=SUM(B2:B4*C2:C4),但不要按下[Enter]键(输入公式的方法和输入普通的公式一样)。按下[Shift]+[Ctrl]+[Enter]键。我们就会看到在公式外面加上了一对大括号“{}”,如图 7-36所示。
在单元格“D”中的公式“=SUM(B2:B4*C2:C4)”, 表示“B2: B4”范围内的每一个单元格和“C2:C4”内相对应的单元格相乘,也就是把每个地区的销售量和销售单价相乘,相乘的结果共有3个数字,每个数字代表一个地区的销售额,而“SUM”函数将这些销售额相加,就得到了总的销售额。
下面我们再以使用数组计算3种产品的销售额为例,来说明如何产生多个计算结果。其操作过程如下:
(1) 选择“D2:D4”单元格区域,该区域中的每个单元格保存的销售金额。如图7-37所示。
(2) 在“D2”单元格中输入公式“=B2:B4*C2:C4”(不按[Enter]键)按下[Shift]+[Ctrl]+[Enter]”键,我们就可以从图7-38中看到执行后的结果。同时我们可以看到“D2”到“D4”的格中都会出现用大括弧“{ }”框住的函数式,这表示“D2” 到“D4”被当作一个单元格来处理,所以不能对“D2”到“D4”中的任一格作任何单独处理,必须针对整个数组来处理。
7.12.2 使用数组常数
我们也可以在数组中使用常数值。这些值可以放在数组公式中使用区域引用的地方。要在数据公式中使用数组常数,直接将该值输入到公式中并将它们放在括号里。例如,在图7-39中,就使用了数组常数进行
计算。
常数数组可以是一维的也可以是二维的。一维数组可以是垂直的也可以是水平的。在一维水平数组中的元素用逗号分开。下面是一个一维数组的例子。例如数组:{10,20,30,40,50}。在一维垂直数组中的元素用分号分开。在下面的例子是一个6×1的数组,{100;200;300;400;500;600}。
对于二维数组,用逗号将一行内的元素分开,用分号将各行分开。下一个例子是“4 ×4”的数组(由4行4列组成):{100,200,300,400;110, … … ;130,230,330,440}。
注意:不可以在数组公式中使用列出常数的方法列出单元引用、名称或公式。例如:{2*3,3*3,4*3}因为列出了多个公式,是不可用的。{A1,B1,C1}因为列出多个引用,也是不可用的。不过可以使用一个区域,例如{A1:C1}。
对于数组常量的内容,可由下列规则构成:
数组常量可以是数字、文字、逻辑值或错误值。
数组常量中的数字,也可以使用整数、小数或科学记数格式。
文字必须以双引号括住。
同一个数组常量中可以含有不同类型的值。
数组常量中的值必须是常量,不可以是公式。
数组常量不能含有货币符号、括号或百分比符号。
所输入的数组常量不得含有不同长度的行或列。
7.12.3 数组的编辑
数组包含数个单元格,这些单元格形成一个整体,所以,数组里的某一单元格不能单独编辑。在编辑数组前,必须先选取整个数组。 选取数组的步骤为:
(1) 选取数组中的任一单元格。
(2) 在“编辑”菜单中选择“定位”命令或者按下[F5]键,出现一个“定位”对话框。按下“定位条件”按钮,出现一个定位条件对话框,如图7-40所示。
选择“当前数组”选项,最后按下“确定”按钮,就可以看到数组被选定了。
编辑数组的步骤为:
选定要编辑的数组,移到数据编辑栏上按[F2]键或单击左键,使代表数组的括号消失,之后就可以编辑公式了。编辑完成后,按下[Shift] +[Ctrl] + [Enter]键。
若要删除数组,其步骤为:选定要删除的数组,按[Ctrl]+[Delete]或选择编辑菜单中的“清除”命令。
7.12.4 数组的扩充
在公式或函数中使用数组常量时,其它运算对象或参数应该和第一个数组具有相同的维数。必要时,Microsoft Excel 会将运算对象扩展,以符合操作需要的维数。每一个运算对象的行数必须和含有最多行的运算对象的行数一样,而列数也必须和含有最多列数对象的列数一样。
例如: = SUM({1,2,3}+{4,5,6})内的第一个数组为1×3,得到的结果为1+4、2+5和3+6的和,也就是21。如果将公式写成 = SUM({1,2,3}+4}),则第二个数据并不是数组,而是一个数值,为了要和第一个数组相加,Excel 会自动将数值扩充成1 ×3 的数组。使用=SUM({1,2,3}+{4,4,4})做计算,得到的结果为1+4、2+4和3+4的和, 即18。
将数组公式输入单元格区域中时,所使用的维数应和这个公式计算所得数组维数相同。这样,Microsoft Excel 才能把计算所得的数组中的每一个数值放入数组区域的一个单元格内。
如果数组公式计算所得的数组比选定的数组区域还小,则 Microsoft Excel会将这个数组扩展,以便将它填入整个数组区域内。例如:={1,2;3,4}*2扩充后的公式就会变为={1,2;3,4}*{2,2;2,2},则相应的计算结果为“2,4,6,8”。再如:输入公式={1,2;3,4}*{2,3}扩充后的公式就会变为={1,2;3,4}*{2,3;2,3} ,则相应的计算结果为“2,6,6,12”。
如果 Microsoft Excel 将一个数组扩展到可以填入比该数组公式大的区域内,而没有扩大值可用的单元格内,这样就会出现#N/A错误值。
例如:={1,2;3,4}={1,2,3} 扩充后的公式就会变为={1,2,#N/A;3,4,#N/A}*{1,2,#/A;1.2.#N/A} ,而相
应的计算结果为“2,4,#N/A,4,6,#N/A”。
如果数组公式计算所得的数组比选定的数组区域还要大,则超过的值不会出现在工作表上。
因篇幅问题不能全部显示,请点此查看更多更全内容