|

楼主 |
发表于 2012-1-23 22:52
|
显示全部楼层
本帖最后由 胡剑0227 于 2012-1-26 11:46 编辑
zeerise 发表于 2012-1-19 16:52 
AG列是一个三维数组,AH列是一个二维数组下拉后形成的,因此AG和AH中ROW()的含义是不同的,AG列是对所有 ...
恩,前几天忙着过年了,晚上抽空看了下,发现了个新的性质。另外这个问题确实比较有意思,呵呵。
先仓促的回答一下吧,过几天空了整理一下测试附件,呵呵
AG列
我曾经提过,决定公式在单元格返回值的不仅仅是公式,因为单元格本身也是一个“参与者”,也提过数组公式落在一个单元格中与落在多个单元格中是不同的。我认为单元格区域不能简单的认为是多个单元格,实际上它们应该属于不同的对象类型了。这就是具体的原因。
AG列的情况正好是这个思路的具体表现,你可以试试在一个单元格录入你的公式,然后再试试在两个连续的单元格中录入你的数组公式。
暂时的结论是:
结论,INDEX第2,3参数为数组,如果以多单元格数组公式录入,并且INDEX返回值直接进行了数学运算或比较运算(欢迎继续补充)时将表现出普通函数数组运算的性质(即返回友好的内存数组)。
另外导致这个问题更加扑朔迷离的是ROW函数,同样这个函数也是根据公式的宿主单元格情况动态变化的,有对应的帖子将这个问题,你可以这么测试 在 A1:A2单元格区域录入联合(这么表达纯是尝试,为了更好的区分)数组公式 =SUM(ROW()),会得到3,1+2=3;然后再在A4:A6单元格区域录入联合数组公式 =SUM(ROW()),会得到 15,4+5+6=15,我想你应该明白ROW函数在这个工程中发生了什么。
于是那个返回8,完全可以理解为 =SUM(--(AB2:AB9=AB2:AB9)),所以等于8.
至于AI,那么原理相同了,无非是 =SUM(--(AB2:AB9=TRANSPOSE(AB2:AB9)),是一个十字交叉的运算,所以返回12...你懂得,呵呵
|
|