Excel 公式学习笔记:数组用法

  • 手写数组
    • F9
    • 一维数组
    • 二维数组
  • 数组计算规则
    • 1. 两个数组行列长度完全一样
    • 2. 两个数组行列长度不同
    • 3. 原数组非单行/单列的
  • 数组拼接
    • 一维数组
    • 多维数组
    • 动态拼接
  • 拼接探索
  • 参考资料

手写数组

F9

F9可以将数组公式转为数组字面量

一维数组

={1,2,3,4,5} 数组在单元格内默认只显示第一个格子。

Ctrl + Shift + 回车输入为数组公式,可以正常显示。

如下数组3行5列,应用数组公式时,多出的格子内结果为#N/A

二维数组

1维代表行(分隔符,),2维代表列(分隔符;
{1,2,3,4,5;6,7,8,9,10;11,12,13,14,15}
INDEX取个值试试:
=INDEX({1,2,3,4,5;6,7,8,9,10;11,12,13,14,15},2,3,1) 结果 8

数组计算规则

1. 两个数组行列长度完全一样

两个数组中n行n列对应的两格子进行计算。结果数组大小与原数组相同。

2. 两个数组行列长度不同

两个数组行列长度不同(对不齐)的情况,先扩展补齐成两个长宽都一样的数组,再计算。如下图所示:

3. 原数组非单行/单列的

多行或多列的数组无法自动扩展,以适配对方。所以原数组行列的最大值,决定了结果数组的行列。

缺失部分结果为#N/A。可以用IFNA函数补救一下:如果为#N/A就显示666

数组拼接

一维数组

拼接 B1:H1&B2:H2两个区域可以得到如下区域内容。

借助 index函数看下效果得到:A3009

多维数组

注意结果的关系。原数组行列的最大值,决定了结果数组的行列。

再这样看看,更明显点。

动态拼接

=CHOOSE({1,2,3,4},A1:A6&B1:B6,C1:C6,D1:D6,E1:E6) 利用条件{1,2,3,4}得到个拼接数组。

拼接探索

再来看个好玩的。拼接A1:H4的内容。遇到#N/A狗屎代替。
=TEXTJOIN(",",1,IFERROR(A1:H4,"狗屎"))

参考资料

三分钟彻底理解Excel数组运算原理

更多推荐

Excel 公式学习笔记:数组用法