一 先搞清楚一个概念:数组与数组公式
(1)数组
EXCEL本身就支持数组,所以,直接用数组相加相乘都是可以的,不需要数组公式也可以生效。
比如 =a3:a8+b3:b8 ;=a3:a8*b3:b8
这个就是基本的线性代数,行列式等的思想吧,虽然已经忘记很久的课程了
(2)公式
2.1工作表公式
2.2数组公式:我现在还不太理解,只能理解这2个特点
1 数组公式的特点就是可以执行多重计算,它返回的是一组数据结果。
2 需要选择一个整体range后,在上面的fx 填整体公式,并且不能单独修改某一个单元格的
3 Ctrl + shift +enter
(3) 区别--比较运算过程进行理解
数组在EXCEL里是一个经常出现的事物,本身EXCEL的一般公式/表达式 也支持数组的运算,而且必须是按数组的。
1 数组的运算,会根据行列规则,某单元格只显示对应行列运算的结果,不显示整体的
数组公式有几种填法
1 选择某个区域后,整体填一个数组公式,将约束这些range
2 在某个单元格填一个公式后,直接输入成数组公式
比如 {=sum(a3:a8*b3*b8)} 和 SUM($A$3:$A$8*$B$3:$B$8)
我比较了下中间结果
(a3:a8*b3*b8) 和 ($A$3:$A$8*$B$3:$B$8) 运算F9都是{1100;1212;1326;1442;1560;1680}
那为什么结果不一样?
直接用公式求值看计算步骤就发现了
{=sum(a3:a8*b3*b8)} 是把这个数组求和了
但是SUM($A$3:$A$8*$B$3:$B$8)的计算步骤是分别取了 100 和 11,得到1100
这可能就是数组公式和普通公式的差别吧。
数组运算表达式,中间算出来的是1个序列,但是最后是工作表公式,只取其中的对应的值算出数组的一个元素。所以不同于数组公式,是把整个数组都算出来,都参与中间,和最后的运算。
(4) 上述比较的实例
选整体填的数组公式 | 一个格的数组公式 | 数组相乘 | 数组相乘后求和 | 数组相乘后求和 | 普通公式--工作表公式 | |||
{=a3:a8*b3*b8} | {=sum(a3:a8*b3*b8)} | $A$3:$A$8*$B$3:$B$8 | SUM($A$3:$A$8*$B$3:$B$8) | SUM(A3:A8*B3:B8) | SUMPRODUCT(A3:A8,B3:B8) | |||
100 | 11 | 1100 | 8320 | 1100 | 1100 | 1100 | 8320 | |
101 | 12 | 1212 | 1212 | 1212 | 1212 | |||
102 | 13 | 1326 | 1326 | 1326 | 1326 | |||
103 | 14 | 1442 | 1442 | 1442 | 1442 | |||
104 | 15 | 1560 | 1560 | 1560 | 1560 | |||
105 | 16 | 1680 | 1680 | 1680 | 1680 |