|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 hjj0451 于 2011-10-27 23:54 编辑
不错的东西,非常漂亮的思考。谈谈我的理解,这些都是单单元格普通公式,你用多单元格数组公式的输入方式来输入就出现了上面的情况,难理解的是D和F:
1.先看E:
=SUM(INDIRECT("A"&ROW())),你让该公式按多单元格数组运算方式计算,由于INDIRECT特性,它不能直接得到类似于多维的结果,只能得到各行的单值之和,H列=SUM(ROW(1:10))这是单单元格数组公式,在一个单元格就等于55,多单元格输入扩展成多个55。
类似这个的我再举个例子,在c1:c10输入多单元格数组公式:
- =SUM(OFFSET(A1,ROW()-1,))
复制代码 结果与上面相同。
3.再看F:
=SUM(ROW()),若输入多单元格数组公式=ROW(),会得到{1;2;3;4;5;6;7;8;9;10},那么输入SUM(ROW())呢,由于单个SUM它不会取得分层的效果,单个SUM进行运算若没有其他函数来配合分列分层的话就只能得到单值。没有其他函数来配合的情况有点类似于MAX/MIN的在数组运算中只能得到单值的情况,不过SUM在其它函数的配合下可以得到多值。
2.看完1和3再来看2:
似乎就能理解容易点了,=SUM(N(INDIRECT("A"&ROW()))),相对于3,有了N的作用,激发数组运算方式后,按照数组公式与数据的相对位置它能分层求得计算到该步的和。
1--1
2--1+2
3--1+2+3
...
10--1+2+...+10
类似这个的我再举个例子,在c1:c10输入多单元格数组公式:
- =SUM(N(OFFSET(A1,ROW()-1,)))
复制代码 结果与上面相同。
|
|