分享

引用 excel数组函数-7号

 xxsdw 2010-05-23

1.Excel中的数组

数组(array,繁体版称作阵列),是由数据元素组成的集合,数据无素可以是数值文本日期逻辑错误值等。数据元素以行和列的形式组织起来,构成一个数据矩阵。

EXCEL中,根据构成元素的不同,可以把数组分为常量数组和单元格区域数组。

1.1.常量数组

常量数组可以同时包含多种数据类型。它用{}将构成数组的常量括起来,行中的元素用逗号“,”分隔,行之间用分号“;”分隔。数组常量不能包含其他数组、公式或函数。当输入如下所示的公式时,Excel 将显示警告动态:{12A1:D4} 或 {12SUM(Q2:Z8)}。另外,数值不能包含百分号、货币符号、逗号或圆括号。

例如,{2"greensky"TRUE#N/A }是一个1行4列的常量数组,而{123;456}则为一个2行3列的常量数组。

1.2.单元格区域数组

单元格区域数组则是通过对一组连续的单元格区域进行引用而得到的数组。在数组公式中{A1:B4}是一个4行2列的单元格区域数组。

1.3.Excel数组的维数

数组作为数据的组织形式本身可以是多维的,而且众多编程都支持多维数组,但是Excel的公式中最高只支持2维数组(也就是行列构成的数组)。关于这个结论,在网络搜索不到明确的答案,做这个结论基于以下两点:

Excel不支持形如={{…}{…}}或={{…};{…}}的书写格式,所以无法表示3维或多维数组。在Excel中提供对数组引用的函数为index(),它的格式为index(arrayrow_numcolumn_num),它只有行列两个参数,而没有引用高于2维数组的参数

index函数也有这样的格式index(referencerow_numcolumn_numarea_num),它提供了第三个引用参数,是不是说明Excel提供了对3维数组的引用呢?答案是否定的,reference可以使用多个区域(区域之间有逗号隔开)构成的参数,第三个参数area_num是用于指定reference中第几个区域的,如INDEX((A1:C6A8:C11)112)中第三个参数只是指定区域A8:C11而已。

Excel VBA支持多维数组。

1.4.数组的引用

在运算过程中,可能需要引用数组中的某一个元素、某一行或某一列。上面介绍元素、行、列的引用技巧。

元素的引用

对于1维数组index(array c),对于2维数组index(array r c)。其中r表示第几行,c表示第几列,一般为正整数。

当r为小数时,会舍弃小数点后的部公(非四舍五入),如index(array 1.2 2.9)等同于index(array 1 2)。编程语言一般默认以截取的方式处理小数转整数的操作,这样可以提高效率,Excel做这样的处理也是在意料之内的。

引用

index(array r 0)返回第r行数据构成的数组。

引用

Index(array 0 c)返回第c列数据构成的数组。

特别的,index(array 0 0)将返回整个2维数组。而index(index(array r 0)c)、index(index(array 0 c) r)和index(array r c)相同,都可以返回第r行第c列的元素。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多