数组里的元素,同一行内的各元素用英文逗号“,”分开,用英文分号“;”将各行分开
3、单列数组与单行数组的计算
两个数组相加,查看结果是几行几列:在任意单元格输入公式“=A80:A83+B87:E87”,抹黑公式,按F9键,可看到公式的计算结果为数组
“{110,210,310,410;120,220,320,420;130,230,330,430;140,240,340,440}”通看看分号
与逗号,我们知道这是一个四行四列的数组,选择一个四行四列的单元格,输入公式“=A80:A83+B87:E87”,三键结束,可看到返回的结果为:
相当于在E80输入公式“=$A80+B$87”右拉下拉复制公式的结果。
4、行数(或列数)相同的单列(或单行)数组与多行多列数组的计算
(1)单列数组的行数与多行多列数组的行数相同时:
(2)单行数组的列数与多行多列数组的列数相同时:
计算规律同单行单列的数组计算的规律大同小异:
5、行、列数不相等的数组计算
(1)行数不相等的单列数组与与多行列数组的计算
(2)列数不相等的单行数组与多行多列数组的计算
(3)行、列数不相同的两个多行多列数组的计算
有了对前面例子的分析,再来看这三个例子就相对简单了。它们的计算规则和前面都是一样的,不难看出:
A、公式返回一个多行多列数组;
B、返回数组的行数与参与计算的两个数组中行数较大的数组的行数相同,列数与较大的列数的数组相同;
C、返回数组的大于较小行数数组行数、大于较大列数数组列数的区域的元素均为#N/A。有效元素为两个数组中对应数组的计算结果。
需要提醒一点的是,对会返回#N/A的数组,在进行再计算和处理时,考虑对#N/A值作相应的处理!
比如我们想对上面数组与数组2相加后的结果进行求和:
正确的公式(数组):=SUM(IF(ISNA(A213:B216+D213:F215),0,A213:B216+D213:F215))
通过ISNA函数对返回的数组里的各个元素进行了判断和处理,把把有的#N/A值替换成数值0,最后再用SUM函数对所有数值进行求和。
我们说,数组计算时,得注意行列数的匹配,其实如果了解了数组的计算原理后,能正确处理那些返回的#N/A值的话,很多时候,并不会出错的。
数组与数组计算,返回一个新的数组。返回的数组的行数与参与计算的数组中行数较大的数组的行数相同,列数与列烽较大的数组的列数相同。
但“为什么两个不同的公式,返回的结果却相同呢?”,这就是我们今天要讲的一个新概念——数组扩充。
数组计算时,参与计算的两个数组得具有相同的维数,也就是得注意行列数的匹配。
对于行列数不匹配的数组,在计算时Excel会将数组对象进行扩展,以符合计算需要的维数。每一个参与计算的数组的行数必须与行数最大的数组的行数相同,列数必须与列数最大的数组的列数相同。
例1:
公式:=SUM({10,20,30,40}*10)里,第一个参数{10,20,30,40}是一行四列的数组,第二个参数不是数组,只是一个数值,为
了让第二个数值能与第一个数组进行专题片,这时,Excel会自动将第二参数的10扩充成一个一行四列的数组{10,10,10,10}与第一参数匹配。
所以,SUM({10,20,30,40}*10) 最后是使用SUM({10,20,30,40}*{10,10,10,10})
进行计算,得到的结果是10*10,20*20,30*30,40*40的和。
例2:
公式:={10;20;30;40}+{100,200}的第一个参数{10;20;30;40}是一个四行一列的数组,
{100,200}是一个一行二列的数组,在计算时,Excel会将第一个数组自动扩充为一个四行二列的数组
{10,10;20,20;30,30;40,40},也会将第二个数组扩充为一个四行二列的数组
{100,200;100,200;100,200;100,200},所以={10;20;30;40}+{100,200}这个公式最后是使用公式=
{10,10;20,20;30,30;40,40}+{100,200;100,200;100,200;100,200}进行计算。公式最后返回的数
组也是一个四行二列的数组,数组的第R行第C列的元素等于扩充后的两个数组的第R行第C列的元素的计算的结果。
好了,在这一贴要讲的已经讲完了。
“数组扩充”这个华雄是否已被你斩于马下?也不知道你手里的茶喝完了没?我希望听到你回答的是:“华雄已斩,茶没喝完,还温着呢。”有兴趣,记得跟贴告诉我一声。呵呵……
继续喝茶,休息。顺便听我再给你唠叨几句。
班里有50个学生,为了让每个学生都有座位,需要预备50套课桌椅。如果只有30套课桌椅,那最后进教室的20个同学将没有座位,如果有60套课桌椅,将会有10套课桌椅空在教室里而别的班级需要课桌椅的同学又不能使用。浪费啊……
学生就像数组里的元素,输入数组公式返回数组的元素就像叫学生进教室,我们得给他们准备好合适的座位。所以输入多单元格数组公式时,应先选中需要返回数据的单元格区域,选中的单元格区域的行、列数应与返回数组的行、列数相同。否则,如果选中的区域小于数组返回的行列数,站在教室里,我们只能看到占了座位的这群学生。如果选择的区域大于数组返回的行列数,那超出的区域将会没有学生去坐而返回#N/A值。
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
编辑 | 附件 | 备注 | 标签 | 书签 | 打印
上一篇 下一篇 返回上页
首页\回收站
数组公式
日期:
2010-09-25 09:38:09
数组里的元素,同一行内的各元素用英文逗号“,”分开,用英文分号“;”将各行分开
3、单列数组与单行数组的计算
两个数组相加,查看结果是几行几列:在任意单元格输入公式“=A80:A83+B87:E87”,抹黑公式,按F9键,可看到公式的计算结果为数组
“{110,210,310,410;120,220,320,420;130,230,330,430;140,240,340,440}”通看看分号与逗号,我们知道这是一个四行四列的数组,选择一个四行四列的单元格,输入公式“=A80:A83+B87:E87”,三键结束,可看到返回的结果为:
相当于在E80输入公式“=$A80+B$87”右拉下拉复制公式的结果。
4、行数(或列数)相同的单列(或单行)数组与多行多列数组的计算
(1)单列数组的行数与多行多列数组的行数相同时:
(2)单行数组的列数与多行多列数组的列数相同时:
计算规律同单行单列的数组计算的规律大同小异:
5、行、列数不相等的数组计算
(1)行数不相等的单列数组与与多行列数组的计算
(2)列数不相等的单行数组与多行多列数组的计算
(3)行、列数不相同的两个多行多列数组的计算
有了对前面例子的分析,再来看这三个例子就相对简单了。它们的计算规则和前面都是一样的,不难看出:
A、公式返回一个多行多列数组;
B、返回数组的行数与参与计算的两个数组中行数较大的数组的行数相同,列数与较大的列数的数组相同;
C、返回数组的大于较小行数数组行数、大于较大列数数组列数的区域的元素均为#N/A。有效元素为两个数组中对应数组的计算结果。
需要提醒一点的是,对会返回#N/A的数组,在进行再计算和处理时,考虑对#N/A值作相应的处理!
比如我们想对上面数组与数组2相加后的结果进行求和:
正确的公式(数组):=SUM(IF(ISNA(A213:B216+D213:F215),0,A213:B216+D213:F215))
通过ISNA函数对返回的数组里的各个元素进行了判断和处理,把把有的#N/A值替换成数值0,最后再用SUM函数对所有数值进行求和。
我们说,数组计算时,得注意行列数的匹配,其实如果了解了数组的计算原理后,能正确处理那些返回的#N/A值的话,很多时候,并不会出错的。
数组与数组计算,返回一个新的数组。返回的数组的行数与参与计算的数组中行数较大的数组的行数相同,列数与列烽较大的数组的列数相同。
但“为什么两个不同的公式,返回的结果却相同呢?”,这就是我们今天要讲的一个新概念——数组扩充。
数组计算时,参与计算的两个数组得具有相同的维数,也就是得注意行列数的匹配。
对于行列数不匹配的数组,在计算时Excel会将数组对象进行扩展,以符合计算需要的维数。每一个参与计算的数组的行数必须与行数最大的数组的行数相同,列数必须与列数最大的数组的列数相同。
例1:
公式:=SUM({10,20,30,40}*10)里,第一个参数{10,20,30,40}是一行四列的数组,第二个参数不是数组,只是一个数值,为了让第二个数值能与第一个数组进行专题片,这时,Excel会自动将第二参数的10扩充成一个一行四列的数组{10,10,10,10}与第一参数匹配。所以,SUM({10,20,30,40}*10)
最后是使用SUM({10,20,30,40}*{10,10,10,10}) 进行计算,得到的结果是10*10,20*20,30*30,40*40的和。
例2:
公式:={10;20;30;40}+{100,200}的第一个参数{10;20;30;40}是一个四行一列的数组, {100,200}是一个一行二列的数组,在计算时,Excel会将第一个数组自动扩充为一个四行二列的数组 {10,10;20,20;30,30;40,40},也会将第二个数组扩充为一个四行二列的数组
{100,200;100,200;100,200;100,200},所以={10;20;30;40}+{100,200}这个公式最后是使用公式= {10,10;20,20;30,30;40,40}+{100,200;100,200;100,200;100,200}进行计算。公式最后返回的数组也是一个四行二列的数组,数组的第R行第C列的元素等于扩充后的两个数组的第R行第C列的元素的计算的结果。
好了,在这一贴要讲的已经讲完了。 “数组扩充”这个华雄是否已被你斩于马下?也不知道你手里的茶喝完了没?我希望听到你回答的是:“华雄已斩,茶没喝完,还温着呢。”有兴趣,记得跟贴告诉我一声。呵呵……
继续喝茶,休息。顺便听我再给你唠叨几句。
班里有50个学生,为了让每个学生都有座位,需要预备50套课桌椅。如果只有30套课桌椅,那最后进教室的20个同学将没有座位,如果有60套课桌椅,将会有10套课桌椅空在教室里而别的班级需要课桌椅的同学又不能使用。浪费啊……
学生就像数组里的元素,输入数组公式返回数组的元素就像叫学生进教室,我们得给他们准备好合适的座位。所以输入多单元格数组公式时,应先选中需要返回数据的单元格区域,选中的单元格区域的行、列数应与返回数组的行、列数相同。否则,如果选中的区域小于数组返回的行列数,站在教室里,我们只能看到占了座位的这群学生。如果选择的区域大于数组返回的行列数,那超出的区域将会没有学生去坐而返回#N/A值。
【录入人员】ANNOYMOUS
【编辑人员】ANNOYMOUS
【内部链接】pkm2:item?key=20100925093809771
更新时间:
2010-11-15 14:47:26 | 阅读次数: 8
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}