Excel公式函数速查 找 Excel 速查参考,尽在 Excel速查簿

数组公式 常见问题

所属主题:Excel 公式不计算 Excel 公式排错速查

数组公式在Excel中的显示方式,公式栏带花括号

数组公式是 Excel 中一种能对一组数据(数组)执行批量计算并返回单个或多个结果的公式。它与普通公式的核心区别在于:普通公式一次只能处理一个单元格或一个值,而数组公式可以同时处理整个区域或数组。数组公式在输入时通常需要按 Ctrl + Shift + Enter 确认(Excel 365 和 Excel 2021 的部分版本已支持动态数组,可直接按 Enter),输入成功后公式栏中会显示花括号 {} 包裹公式(老版本行为)。最常见的应用场景包括:多条件求和/计数、跨表汇总、提取不重复值、以及在一行内完成原本需要多列辅助列才能实现的计算。

在 Excel 中的位置

数组公式不是一个独立的菜单命令,而是公式编辑的一种模式。你可以在任何需要写公式的单元格中使用它。功能区中没有专门的一键开启按钮,但以下路径可以帮助你理解触发场景:

  • 普通公式输入模式:选中单元格 → 输入公式 → 按 Enter(常规操作,不启动数组)
  • 老版本数组公式模式(CSE):选中单元格 → 输入公式 → 按 Ctrl + Shift + Enter(公式栏显示 {}
  • 动态数组模式(Excel 365/2021):选中单元格 → 输入公式 → 按 Enter(公式会自动溢出到相邻单元格)

公式 选项卡下的 名称管理器 中,也可以定义命名数组来简化数组公式的书写。

最佳适用场景对比:

| 场景 | 推荐公式类型 | 优势 | 注意事项 | |------|-------------|------|---------| | 单条件汇总 | SUMIF / COUNTIF | 简单、快 | 条件单一,无需数组 | | 多条件汇总 | SUMPRODUCT / 数组公式 | 灵活、无需辅助列 | 运算量大,对新手不直观 | | 按条件提取列表 | FILTER(动态数组) | 返回结果可自动扩展 | 仅 Excel 365/2021 | | 跨表多条件求和 | SUM(IF(...)) 数组形式 | 可处理复杂逻辑 | 输入时必须用 Ctrl+Shift+Enter | | 矩阵乘积/线性代数 | MMULT | 专业领域唯一选择 | 需要理解矩阵维度 |

分步示例:用数组公式完成多条件计数

数组公式多条件计数示意图,产品为笔记本且区域为华北

假设你有一份销售记录表(A1:C100 区域),列分别为:A(产品)、B(区域)、C(销售额)。现在要统计“产品为‘笔记本’且‘华北’区域”的销售记录条数。

步骤 1:准备数据并确认区域

确保数据区域连续,表头行明确。本例中数据为:A1=产品,B1=区域,C1=销售额;A2:A100 为产品名,B2:B100 为区域名,C2:C100 为销售额数字。确认区域末尾没有空白行——空白行会导致计数结果为零。

步骤 2:编写数组公式

在任意空单元格(如 E1)输入公式: `` =SUM((A2:A100="笔记本")*(B2:B100="华北")) ``

步骤 3:确认公式

  • 老版本 Excel(2019 及更早):输入完公式后按 Ctrl + Shift + Enter。公式栏显示 {=SUM((A2:A100="笔记本")*(B2:B100="华北"))}。如果看到花括号,说明数组模式已激活。
  • Excel 365 / Excel 2021:直接按 Enter 即可。动态数组会自动处理。

步骤 4:检验结果

  • 预期:返回数字,如 15(表示有 15 条匹配记录)。
  • 检查点:修改一个单元格中的产品名(把“笔记本”改成其他),刷新后结果应立即变化。
  • 常见坑:如果区域中包含了表头行(如 A1="产品"),公式会误把文本参与乘法运算,导致 #VALUE! 错误。解决方案:确保区域从 A2 开始,不包含表头。

公式与快捷键示例

以下是几个可直接复制到 Excel 中试用的数组公式示例(假设数据区域为 A2:A100 和 B2:B100):

示例 1:多条件求和(老版本 CSE) `` =SUM((A2:A100="指定条件")*(B2:B100)) ` 作用:对满足 A 列条件的 B 列数值求和。输入时按 Ctrl+Shift+Enter`。

示例 2:提取不重复值(老版本 CSE,较复杂) `` =INDEX(A2:A100, MATCH(0, COUNTIF($E$1:E1, A2:A100), 0)) ` 作用:提取 A 列中的唯一值,从 E2 开始向下填充(需配合 Ctrl+Shift+Enter 并在多个单元格下拉)。此公式在数据量大时变慢,Excel 365 建议直接用 UNIQUE` 函数。

示例 3:判断某值是否在列表中(动态数组常用) `` =OR(A2:A100="目标值") `` 作用:如果列表中包含“目标值”则返回 TRUE,否则 FALSE。Excel 365 直接按 Enter 即可。

常见错误与排查

数组公式常见错误排查,包括#VALUE!和忘记快捷键

当你使用数组公式时,最常遇到的错误提示有以下几种:

| 错误类型 | 出现原因 | 解决 | |----------|---------|------| | #VALUE! | 数组区域包含文本或空单元格参与乘法运算 | 检查数据区域是否有非数值单元格,或使用 N() 函数将文本转为 0 | | #N/A | 查找类数组公式(如 INDEX+MATCH)没有找到匹配项 | 确认查找值存在于数据区域;检查名称是否完全一致(包括空格) | | 花括号消失 | 误按 Enter 导致数组模式丢失(老版本) | 重新进入单元格编辑,按 Ctrl+Shift+Enter | | 结果仅显示一个值 | 忘记数组需要多个输出单元格(多单元格数组公式) | 先选择足够多的空白单元格区域,再输入公式并确认 | | 计算结果明显错误(如返回 0) | 条件写反、区域错位或遗漏了相乘因子 | 分步拆解公式:先写 (A2:A100="笔记本") 单独查看计算出的真假数组 |

排查流程:选中公式单元格 → 按 F2(进入编辑) → 选中公式中的某一部分(如 (A2:A100="笔记本"))→ 按 F9 → 看是否正确显示为 {TRUE;FALSE;TRUE;...} 这样的数组。按 Esc 退出,不要按 Enter 保存 F9 的结果。

FAQ

数组公式 常见问题 是什么?

数组公式是一种可以对一组数据(称为数组)执行一次性批量运算的公式。它区别于普通公式的关键在于:普通公式每次只计算一个值,而数组公式可以同时处理多个值并返回一个结果或多个结果。在 Excel 早期版本中,数组公式必须按 Ctrl+Shift+Enter 输入,因此常被称为 CSE 公式。从 Excel 365 开始,引入了动态数组功能,许多数组运算可以直接用普通公式实现并自动溢出到相邻单元格。

数组公式 常见问题 怎么操作?

操作的核心是两步:编写数组运算表达式,然后按下正确的确认键。对于老版本(Excel 2019 及更早),在输入公式后按 Ctrl+Shift+Enter,Excel 会自动添加花括号。对于新版本(Excel 365 / 2021),许多数组函数(如 FILTER、UNIQUE、SORT)可以像普通公式一样输入并按 Enter。如果你不确定自己的 Excel 版本是否支持动态数组,可先按 Ctrl+Shift+Enter,不会出错。编写数组公式时,记得检查数据区域是否包含空白行或文本,避免 #VALUE! 错误。

数组公式 常见问题 常见错误有哪些?

最常见的问题包括:忘记按 Ctrl+Shift+Enter(老版本)、数据区域中包含空白单元格导致 #VALUE!、条件区域与实际数据区域长度不一致、以及误解数组公式的返回值(以为会返回单个值,实际应返回数组)。排查时建议先拆分公式各段,用 F9 键查看中间计算结果。未来在 Excel 365 中,尽量使用 FILTER、UNIQUE、SORT 等动态数组函数代替手写的数组公式,可显著降低出错概率。

更多关于公式调试的内容,可参考 Excel 公式不计算 和 数组公式。

同站延伸