目录
3.1 在1个单元格里,写一个数组公式(输出在一个单元格内)
4.1 注意数组公式里的存储是number 还是 string
5.2 重点2:普通公式里的数据扩展为数组,普通公式就的变为数组公式了吗?并没有,一定要三键才算
加上{} 就改变了 {}里的函数的计算方式,从值计算变成了数组计算!
5.4 重点4:数组公式的计算只是过程,最终目的还是为了得到数组中符合条件的值
1 不用数组公式的情况
- 一般情况,也可以计算
- 比如用普通公式,逐个计算,然后再计算
- 少数公式有类似数组公式的效果,比如sumproduct()
- 但有些情况下,不用数组公式,想用普通公式很麻烦的算都是很困难的
2 第1类数组公式:
(多个单元格绑一起,感觉很少情况下才需要这么用)
- 选择多个单元格后,在编辑栏,只输入一个公式
- 需要用 shift ctrl enter联合输入
- 这种数组公式,不能单独修改其中1个单元格的内容,必须选择全部相关单元格后,一起修改
3 第2类数组公式:
3.1 在1个单元格里,写一个数组公式(输出在一个单元格内)
数组公式写法
- 数组公式一般,不需要往下拖,1格就够了
- 数组公式的返回结果,EXCEL的处理特殊
- EXCEL的一个单元格只会显示数组公式,返回的数组的第1个数。
- 而且这个数就是数组的第1个number,用tpye() if判断都可以发现就是数组的第1个值
- 所以有时候比如数组是,字符串数组 string array 要注意,即使数组公式的结果显示为false,那也只是第1个数是false而已。
- 但是数组公式,在这个单元格里存储的还是整个数组,只是只显示为第1个数。
4 数组公式的计算:
4.1 注意数组公式里的存储是number 还是 string
- 因为数组公式返回值是一个数组,可能是 string 或 number,甚至逻辑值
- 可能是字符串数组
- 可能是逻辑值数组
- 如果是数值数组,可以用 small(), large(),match() 等计算
5 理解数组公式:
5.1 重点1:公式里有数组,也不一定就必须是数组公式
- 比如 LOOKUP(AM4,AJ5:AJ24,AK5:AK24)
- 比如 LOOKUP(1,0/(AJ:AJ=AN4),AK:AK)
- 所以,我当时图里表上这个说法并不对。。。
5.2 重点2:普通公式里的数据扩展为数组,普通公式就的变为数组公式了吗?并没有,一定要三键才算
- EXCEL的公式里本身就可以处理数组
- 但真正的数组公式需要 三键+ 内部用到了数组
- 比如,数组和数组的计算,像行列式,线性代数的内容
- 比如 数组计算像矩阵计算等待
5.3 重点3:数组公式是普通公式的扩展,普通公式是基础
加上{} 就改变了 {}里的函数的计算方式,从值计算变成了数组计算!
- 另外,普通公式是基础
- 得先学好普通公式,然后思维扩展到数组
- 比如先理解
- IF(C19=E19,ROW(C19))
- 才能理解
- {=IF(C19:C23=E19,ROW(C19:C23))}
5.4 重点4:数组公式的计算只是过程,最终目的还是为了得到数组中符合条件的值
- 我觉得数组公式,只是中间过程
- 利用数组,矩阵计算这种数组公式
- 最终的目的还是为了得到数组种符合条件的值,有可能是1个值,或者还是1个数组
比如,这种并无意义
而下面这种才有意义
6 数组公式2个例子,加深理解
- sum(A1:A15-E$1)
- 而不能 sum(A1-E$1)
- exact(参数1--数组,参数2--标准:标量常数)
- exact(C4:E4,C4)
- 而不能 exact(C4,C4)
- 需要判断 k>所有序列里得最大那个
- 不需要max()
- 直接 k58> k59:k64 ,数组公式即可