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