EXCEL 数组公式

数组里的元素,同一行内的各元素用英文逗号“,”分开,用英文分号“;”将各行分开

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;}

时间: 2024-08-05 11:12:55

EXCEL 数组公式的相关文章

Excel表格公式大全[转]

Excel技巧网_官方微博 作者: Excel技巧网_官方微博 2016-09-23 14:05:20 举报 阅读数:21219 ​1.查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复",""). 2.用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0). 3.从输入的18位身份证号的出生年月计算公式:=CONCATENATE(MID(E2,7,4),&qu

VBA 定义能返回数组公式的自定义函数

返回一个变量大小结果数组的方法 此方法返回基于一个参数范围的值的数组.结果数组的大小具体取决于参数数组中的元素数量波动.例如对于假定您要创建一个范围中的每个值乘以 100 的函数.下面的自定义函数接受作为其参数的数组 (某一范围的值): Function Multiply_Range(myrange As Object) As Variant Dim temp As Variant Dim i As Integer, j As Integer temp = myrange.Value 'crea

10个财务工作中常用的 Excel 万能公式

1.多条件判断公式 =IF(AND(条件1,条件2...条件n),同时满足条件返回的值,不满足条件返回的值) =IF(OR(条件1,条件2...条件n),同时满足任一条件返回的值,不满足条件返回的值) 示例:同时满足金额小于500且B列内容为“未到期"时在C列输入”补款“ =IF(AND(A2<500,B2="未到期"),"补款","") 2.多条件求和.计数公式 Sumproduct(条件1*条件2*条件3...数据区域) 示例

.NET实现Office Excel自定义公式 广泛应用于报表与数据分析

在管理软件开发的功能点中,有相当一部分功能是与Excel做数据交互,产生Excel 数据报表.如果Excel报表的数据计算方法很有规律可循,则可以通过自定义公式来解决.比如常见的资产负债表,利润表,取数都非常有规律. Excel DNA是一套用.NET框架实现的Excel自定义公式引擎,互联网上有很多Excel财务方面的报表是基于此技术实现.Excel DNA完全开放源代码,可到网上下载它的完整源代码和例子工程,地址是https://exceldna.codeplex.com    开发自定义公

POI生成EXCEL,公式不自动执行的有关问题

POI生成EXCEL,公式不自动执行的问题 场景:POI读取Excel模板. 当使用POI操作Excel时,发现由POI生成的公式能够在打开Excel是被执行, 而事先手工写入Excel模板文件的公式则不自动被调用,必须手动双击该Cell才能生效. 采取的办法: 1.使用cell.setCellFormula方法重新在制定Cell里写入公式. 2.使用sheet.setForceFormulaRecalculation(true);方法强制让改Sheet执行公式. 当然,在方法2能够生效的情况下

VBS 移除excel数据公式,只保留值

如果将excel数据公式移除,只保留计算之后的值,将大大减少excel文件. 因为有上篇移除excel外部数据链接的经验,进行excel数据公式移除将快的多,方法如下. 首先我们得明白怎么手动移除excel的格式. 选中要处理的数据,然后右击 copy, 再右击paste Special,然后出现如下图的提示框.选中 Values. 此时要处理的数据将只以值呈现,格已去掉. 然后通过宏录制,来查看用的什么函数,发现VBA用PasteSpecial来处理. 接下来在搜索VBA函数. 内容如下: 应

Excel - 使用公式将秒转换为分+秒

场景 现在有个需求:将Excel里的时间转换为分+秒的格式,如下: time(second) time(min+second) 482.712 XXmin,XXs 480.737 XXmin,XXs 对于这种场景,可以通过Excel的公式来实现. 解决方法 假设现在的time(second)是单元格的A1位置,我们需要对A2.A3等等这一列转换到B这一列.先在B1单元格输入以下公式: =INT(A2/60)&"min,"&ROUND(MOD(A2,60),0)&

和身份证有关的5个Excel函数公式

和身份证有关的5个Excel函数公式 以下是一组和身份证有关的函数公式,如果你是财务人员或是一名HR,那就一起来看一下啦: 1.查找重复身份证号码:=IF(COUNTIF(A:A,A2&"*")>1,"重复","") 要点:在COUNTIF函数的第二参数后加上一个星号 &"*".COUNTIF函数在计算文本型数字时,会默认按数值型进行处理,但是Excel中的数字精度只有15位,并且身份证号码是18位,因此

EXCEL 带公式单元格自动填充

你有没有碰到这样的问题: 在使用EXCEL的过程中,特别是一些涉及到公式计算得场合,有些变量在单元格在向下填充时不需要变化,但有些需要变化? 若碰到这样的问题,有一个妙招,首先区分变化的变量和不变的变量,即在向下填充时不需要随着单元格的下移而改变数据区的变量就是不变得变量,也就是说这个变量所指向的数据区是固定的,否则是变化的变量. 1.例子:如有B,C数据列,D2单元格为B列平均数,需要计算D列每一行和C的积放在E列,如何写E列的自动向下填充公式? 分析:这里B.C为变化的变量,不同行取不同的值