|
从这次回复看,也就是说——我们谈的仍然不是一个概念。
概念上:数组是数组,公式是公式,此处已经分A、B两种了:{1,2,3}可以称为数组,={1,2,3}可以称为公式。
A-1常量数组:{1,2,3}
A-2区域数组:比如数组公式=SUMIF(A1:A10,A1:A10,B1:B10)——这里面,第2参数不仅仅作为“引用”,也作为一个区域数组。
A-3内存数组:可以说上面这个公式得到的是一个内存数组,因而可以将{=SUMIF(A1:A10,A1:A10,B1:B10)}看成一个可以生成内存数组的公式。
B-1 数组公式是公式的一个分支:
肯定还是有人对按Enter键结束的=SUMPRODUCT(A1:A3*B1:B3)——是数组公式还是普通公式心存疑问,但从讨论的大方向定义来看:按三键才是数组公式,不按三键,可以说这个公式过程中存在多项计算,如有异议,可以去那帖探讨。
B-1-1多单元格数组公式是数组公式的又一个分支:选择连续的多个单元格输入公式后按三键。
要从字面上,算你说得过去。要从一般的理解角度看,容易误解成后者(或者我的理解能力不够)
但现在觉得即使不是一次成型也应该算内存数组,只是没有直接一次成型而已
那么,在你的概念里,已经从本质上,把A-3内存数组变成了B-1-1-1了,也就是我们之间的交流,需要再经过一个第三方的翻译器。
内存数组可以作为一个整体模块代入下一步运算,如果难以理解,可以把它先看成是“计算机帮我们输入的常量数组”,说到常量数组就容易明白了,再返回来修改——并不是计算机帮我们输入的,而是我们的公式生成的,并不是常量,而是……
比如=MAX(SUMIF(A1:A10,A1:A10,B1:B10))——如果A列是人员、B列是销售额,就可以求得销售冠军的业绩。
这个时候,SUMIF生成内存数组作为一个整体模块代入MAX运算。
多单元格数组公式(是公式的一种输入方式),比如用=MAX(SUMIF(A1:A10,INDEX(A1:A10,ROW(1:10)),B1:B10))代替,这个时候SUMIF能再得到一个作为整体模块代入MAX运算的值吗?
本质上的区别,越是需要说清楚。
另,可能还有其他分支,非此处探讨问题,就略去了。
[ 本帖最后由 gouweicao78 于 2010-5-5 13:18 编辑 ] |
|