本帖最后由 胡剑0227 于 2011-10-14 13:36 编辑
smlee 发表于 2011-10-12 17:37
这样的话,我明白了,是我理解的方向错了。
前面第一个练习中出现的这条公式
额,胡版,不知道是不是我太蠢了。。输入那部分还是不太明白
我知道ROW(A2:G9)*10是作为一个数组相乘,只是不理解{1,2,3,4,5;3,4,5,6,7}*10跟{1,2,3,4,5;3,4,5,6,7}的位置有差别吗?所以始终不明白为什么要相乘。
RIGHT(SMALL(ROW(A2:G9)*10+A2:G9,后面还要加上原来的值。。这个只是为了让RIGHT函数取值的话为什么不直接用A2:G9??我就差这点可以理解整个公式了。。。
输出部分,经过胡版您的解释再加上自己的反复测试,终于有种顿悟的感觉。我把自己想法说出来,让您评价下:
COLUMN($A:$G)+(ROW($A$2:$G$9)-2)*7),原来COLUMN(A:G)和COLUMN(1:7)是差别这么大的,这部份作为新数组{1,2,3,4,5,6,7};这个是横向的数组
(ROW($A$2:$G$9)-2)*7 实测发现胡版说错了 row(A1:C1)和ROW(A1:C3)得出结果是不一样的。(胡剑:恩,心里想的是ROW(A1:A3)吧,不过搞不清了, 你理解了就好,哈哈)但是row(a1:c3)和row(1:3)是一样的。我终于明白为什么要-2,因为A2的行号为2要确保多维数组从1开始所以必须减去2,生成新数组{0;7;14;21;28;35;42}这个是纵向的数组
当两个数组相加会变成一个2维数组{1,2,3,4,5,6,7;8,9,10,11……50,51,52,53,54,55,56,57}而small函数的K参数是作为条件使用。。。也就是说最后结果会按照这个2维数组的坐标去生成数据。不知道我这样理解对不对?
胡剑0227:
是的,参数驱动么,参数的值以及空间排布都是返回值数组生成的依据
输入部分你再想想吧,用F9可以看看结果,可以帮助理解。
|