Excel 数组公式基础 #
数组概念 #
什么是数组 #
数组是一组值的集合,可以是一维(行或列)或二维(表格)。
text
一维数组(行):{1, 2, 3, 4, 5}
一维数组(列):{1; 2; 3; 4; 5}
二维数组:{1, 2, 3; 4, 5, 6; 7, 8, 9}
分隔符:
- 逗号 , 分隔列
- 分号 ; 分隔行
数组公式的特点 #
text
┌─────────────────────────────────────────────────────────────┐
│ 数组公式特点 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 可以同时处理多个值 │
│ 2. 可以返回多个结果 │
│ 3. 可以执行复杂的多步计算 │
│ 4. 传统数组公式需要 Ctrl+Shift+Enter 输入 │
│ 5. Excel 365 支持动态数组,自动溢出 │
│ │
└─────────────────────────────────────────────────────────────┘
常量数组 #
基本语法 #
excel
水平数组:{1, 2, 3}
垂直数组:{1; 2; 3}
二维数组:{1, 2; 3, 4}
文本需要加引号:{"A", "B", "C"}
使用示例 #
excel
=SUM({1, 2, 3, 4, 5}) → 15
=AVERAGE({10, 20, 30}) → 20
=MAX({1; 2; 3; 4; 5}) → 5
=SUM({1, 2; 3, 4}) → 10
实际应用 #
excel
快速创建序列:
={1, 2, 3, 4, 5}
快速求和:
=SUM({100, 200, 300, 400})
查找多个值:
=VLOOKUP({"A", "B", "C"}, 范围, 2, FALSE)
返回多个查找结果
传统数组公式(CSE) #
输入方法 #
text
1. 输入公式
2. 按 Ctrl + Shift + Enter(不是单独的 Enter)
3. 公式会自动加上花括号 {}
注意:手动输入 {} 无效
基本示例 #
excel
单条件求和(旧版):
=SUM(IF(A1:A10>60, B1:B10, 0))
按 Ctrl+Shift+Enter
多条件求和(旧版):
=SUM((A1:A10="销售")*(B1:B10>1000)*C1:C10)
按 Ctrl+Shift+Enter
数组运算 #
excel
两个范围相乘:
=A1:A10 * B1:B10
返回每个对应元素的乘积
条件计数:
=SUM(--(A1:A10>60))
统计大于60的个数
条件求和:
=SUM(IF(A1:A10>60, A1:A10))
求大于60的数的和
实际示例 #
text
数据:
A B
1 产品 销量
2 产品A 100
3 产品B 200
4 产品A 150
产品A的总销量(数组公式):
=SUM((A2:A4="产品A")*B2:B4)
按 Ctrl+Shift+Enter
→ 250
数组公式的应用 #
条件统计 #
excel
多条件计数:
=SUMPRODUCT((A1:A10="销售")*(B1:B10>1000))
或(数组公式):
=SUM((A1:A10="销售")*(B1:B10>1000))
按 Ctrl+Shift+Enter
条件求和 #
excel
多条件求和:
=SUMPRODUCT((A1:A10="销售")*(B1:B10>1000)*C1:C10)
或(数组公式):
=SUM((A1:A10="销售")*(B1:B10>1000)*C1:C10)
按 Ctrl+Shift+Enter
查找最大值位置 #
excel
=MAX((A1:A10=MAX(A1:A10))*ROW(A1:A10))
按 Ctrl+Shift+Enter
返回最大值所在的行号
提取唯一值 #
excel
=INDEX(A1:A10, MATCH(0, COUNTIF($B$1:B1, A1:A10), 0))
按 Ctrl+Shift+Enter
提取唯一值列表(旧版方法)
数组公式技巧 #
双重否定 #
excel
=SUM(--(A1:A10>60))
-- 将 TRUE/FALSE 转换为 1/0
等同于:
=SUMPRODUCT(--(A1:A10>60))
N 函数转换 #
excel
=SUM(N(A1:A10>60))
N 函数将 TRUE/FALSE 转换为 1/0
IF 嵌套 #
excel
=SUM(IF(A1:A10>60, 1, 0))
等同于:
=SUMPRODUCT(--(A1:A10>60))
Excel 365 动态数组 #
自动溢出 #
excel
Excel 365 中,数组公式自动溢出到相邻单元格:
=A1:A10
自动显示10个值
=A1:A10*2
每个值乘以2后显示
新函数 #
excel
FILTER:筛选数据
=SORT:排序数据
UNIQUE:提取唯一值
SEQUENCE:生成序列
RANDARRAY:生成随机数组
示例 #
excel
筛选大于60的数据:
=FILTER(A1:A10, A1:A10>60)
排序:
=SORT(A1:A10)
唯一值:
=UNIQUE(A1:A10)
序列:
=SEQUENCE(10) → 1到10
实战案例 #
案例1:条件求和 #
text
数据:
A B C
1 部门 产品 销售额
2 销售 产品A 1000
3 技术 产品B 2000
4 销售 产品A 1500
销售部产品A的总销售额:
=SUMPRODUCT((A2:A4="销售")*(B2:B4="产品A")*C2:C4)
→ 2500
案例2:统计不重复值 #
text
数据:
A
1 产品
2 产品A
3 产品B
4 产品A
5 产品C
不重复产品数:
=SUMPRODUCT(1/COUNTIF(A2:A5, A2:A5))
→ 3
案例3:条件平均 #
text
数据:
A B
1 部门 销售额
2 销售 1000
3 技术 2000
4 销售 1500
销售部平均销售额:
=AVERAGE(IF(A2:A4="销售", B2:B4))
按 Ctrl+Shift+Enter
→ 1250
或使用 AVERAGEIF:
=AVERAGEIF(A2:A4, "销售", B2:B4)
小结 #
数组公式是处理多值计算的强大工具:
| 概念 | 说明 |
|---|---|
| 常量数组 | {1, 2, 3} 或 {1; 2; 3} |
| 传统数组公式 | Ctrl+Shift+Enter 输入 |
| 动态数组 | Excel 365 自动溢出 |
| 数组运算 | 对应元素逐一运算 |
接下来,让我们学习 动态数组函数,掌握新一代数组处理技巧。
最后更新:2026-04-11