以下是引用山菊花在2006-12-12 14:56:57的发言: 把数组作EVALUATE()参数,其计算过程不是以数组作参数,而是以其中某一单值作参数进行计算,返回一个单值结果,在多单元格中输入公式,返回各参数对应的结果,应该解释为隐含交叉引用的结果才合理,Evaluate()分别取不同的参数,经过多次计算,返回不同的结果。guangyp兄以为如何? 1、从第1个EVALUATE函数结果得知,已经将文本转换为真正的内存数组,但由于EVALUATE函数的参数不支持数组,因此外层的E函数无法将数组中的算式文本再批量进行运算(求和)。 2、但用户又希望它在一个单元格显示出结果,所以它只能以数组中左上角元素进行运算,结果为2。 3、而采用多个单元格中输入时,这里的数组公式称之为“单元格联合数组公式”,这个与平时用到的如:B1:B4中输入:=N(Offset($A$1,{0;1;2;3},))原理是相同的--函数中隐含的交叉引用在起作用,各个单元格独立计算,互不相干。 但得提醒一点,这种“数组公式的交叉引用”和下面帖子中说的“普通公式中交叉引用”又是不同的,数组公式中的交叉引用和输入公式的单元格起始位置无关(只和参与运算数组方向、联合单元格的数量有关),而普通公式则是与“起始位置”息息相关的。请注意区分。 http://club.excelhome.net/dispbbs.asp?boardid=3&replyid=572710&id=196588&page=1&skin=0&Star=3 27楼 |