=IF({1},ROW(1:6),COLUMN(A1:C1))生成的是以下数组 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 而=IF({0},ROW(1:6),COLUMN(A1:C1))则生成以下数组 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 因此可以看出,当IF(logical_test,value_if_true,value_if_false)的 logical_test为单值数组时,结果数组的行数等于value_if_true的行数,列数等于value_if_true的列数 遗憾的是,目前还不知道这在内存数组构建上能有什么应用,也许在取行列数值时可以取代易失函数提高运算速度。 一般用在动态图表的系列数据源的选择上,根据判断条件的真假,返回相应的区域数据组成的数组,作为系列的值,配合单选钮或复选框使用,也可以写成这种形式,IF(1,A1:D1,C2:G2)和IF(0,A1:D1,C2:G2),或用CHOOSE(1,A1:D1,C2:G2)和CHOOSE(2,A1:D1,C2:G2)代替。和第一个参数是否为数组没有关系。要注意一点,它们返回不是对单元格区域的引用而是数组。工作原理解释见本贴第三页——apolloh注
[此贴子已经被apolloh于2007-6-30 17:49:14编辑过] |