Excel数组是将多个数据视为一个整体进行批量运算的有序集合,核心在于“一次公式、多处计算",分为传统CSE数组(需Ctrl+Shift+Enter)和现代动态数组(直接回车自动溢出)两类。数组定义:由多个元素(数字、文本、逻辑值等)组成的有序序列,用{}包裹,可存在于单元格区域或内存中。
1.维度分类:
一维横向:单行数据,各个元素间用逗号分隔,如{2,3,4}。
如下表格,先选中B2:D2,再输入:={2,3,4},按回车,就生成了一个横向一维数组。

一维纵向:单列数据,各个元素间用分号分隔,如{1;2;3}。
如下表格,先选中A4:A6,再输入:={1;2;3},按回车,就生成了一个纵向一维数组。

二维数组:多行多列,同一行内的各个元素间用逗号隔开、不在一行内的各个元素间用分号隔开,如{1,2;3,4}。
如下表格,先选中F4:G6,再输入:={1,2;3,4;5,6},按回车,就生成了一个三行二列的二维数组。

3.内存数组
内存数组是Excel公式运算过程中暂存于计算机内存、不显示在单元格中的中间数据集合,常用于嵌套函数实现批量计算而无须辅助列。
本质:公式执行时生成的临时数组,仅存在于内存中,无法直接选中或编辑其单个元素。
产生方式:由函数(如ROW、IF、
FILTER)或区域与常量运算(如 A1:A5*{1,2,3,4,5})动态生成。
作用:作为参数传递给外层函数(如
SUM、AVERAGE),替代循环结构完成多条件筛选、加权求和等复杂逻辑。
以下以逻辑运算为例
在C2输入:=B2>80,按回车,并向下填充公式。
也可以在D2输入:=B2:B6>80,按回车,显示结果和C2:C6是一样的
可以选中B2:B6>80,按F9,显示:={TRUE;FALSE;TRUE;FALSE;FALSE},这个结果和C2:C6是一样的,而且各个元素之间用;隔开,表示这个结果按纵向分布的。
这里数组B2:B6>80,就是把把2:B6中的每一个元素都分别与80作比较,即>80则生成true,<80则生成false,生成一组逻辑值。
最后在D8输入:
=SUM(--(B2:B6>80)),在新版Excel中,直接按回车,返回:2


以上由:=B2:B6>80生成的一组逻辑值:={TRUE;FALSE;TRUE;FALSE;FALSE},不会填充到单元格区域,无法直接选中查看,需通过嵌套函数消耗其结果,这个数组便是内存数组。
4.存在形式:
引用数组:直接引用单元格区域(如
A1:A5)。
常量数组:手动输入固定值(如{1,2,3}).
内存数组:由函数(如ROW(1:5))临时生成,不直接显示在单元格中。
5.输入方式与版本差异(关键)
(1)旧版/兼容模式(Excel 2019及更早):
需先选中输出区域,输入公式后按
Ctrl+Shift+Enter 三键结束。
系统自动在公式两端添加{}(不可手动输入),称为"CSE公式"。
(2)新版动态数组(Excel 365/2021+):
仅在单个单元格输入公式,直接按Enter。
结果自动"溢出"填充相邻单元格,无需三键,支持 FILTER、SORT 等专用函数
基础运算逻辑
数组与常量:每个元素分别与常量运算(如 A2:C2*2即在A4单元格输入:=A2:C2*2,按回车,可返回数组{2,4,6},也就是把原来A2:C2中每一个元素都与2相乘,得到数组{2,4,6}

数组与数组:对应位置元素一一运算,要求维度匹配。
逻辑转数值:TRUE/FALSE 在数学运算中分别视为1/0,常用于条件求和(如 SUM((A1:A5>10)*B1:B5)).