夜雨聆风学习资料网

ARTICLE · 1204101

Excel数组公式入门:一个公式解决多行计算

Excel数组公式入门:一个公式解决多行计算

数组公式的核心思想是:让一个公式同时处理一整片区域,而不是只算一个格子。比如要算「单价 × 数量」的总金额,普通做法得先加一列辅助列再求和,数组公式一句话就能出结果。

一、先看普通做法的问题

假设 B2:B10 是单价、C2:C10 是数量。常规做法是在 D2 写 =B2*C2,下拉到 D10,再 =SUM(D2:D10)。多出一列辅助数据,表格一长就很乱,还容易漏拉几行。

二、一个数组公式直接求和

在任意空白单元格输入:

=SUM(B2:B10*C2:C10)

它会先把两个区域逐行相乘,再把 9 个乘积加总。Excel 365、Excel 2021 以及 WPS 新版表格直接按回车即可;Excel 2016、2019 等旧版本需要按 Ctrl+Shift+Enter,公式两边会自动出现一对花括号 { },这个花括号由系统生成,不能手打。

三、条件求和与条件计数

统计「销售部」的金额合计,可以这样写:

=SUM((A2:A10="销售部")*C2:C10)

统计销售部有多少人:

=SUM((A2:A10="销售部")*1)

想更好读,也可以写成 =SUM(IF(A2:A10="销售部",C2:C10,0))。这两个需求其实用 SUMIF、COUNTIF 更省事,数组公式真正的价值在多条件、跨列混合计算,比如「销售部且金额大于 1000 的单数」:

=SUM((A2:A10="销售部")*(C2:C10>1000))

还要注意,参与运算的两个区域大小必须一致:B2:B10 配 C2:C10 没问题,若写成 B2:B10 配 C2:C8,行数对不上就会返回 #VALUE! 错误。

四、动态数组溢出:新版本更省心

Excel 365 与 WPS 新版本支持动态数组,结果会自动「溢出」到右侧或下方的空白单元格。假设 A2:A10 是姓名,要一次得到全部大写形式:

=UPPER(A2:A10)

回车后 9 个结果自动铺满 B2:B10,不需要下拉,也不需要按三键。如果下方单元格已有内容,公式会报 #SPILL! 错误,清空阻挡区域即可。

方案
优点
缺点
适用场景
普通公式加辅助列
直观,好排查
占列,表格变长
简单表格
传统数组公式(三键)
旧版本都能用
整片区域绑定,不能单改一格
Excel 2016/2019
动态数组公式
一次出多格,可自动扩展
需要 365 或新版 WPS
新版环境

五、常见问题

结果只有一个数?如果在需要三键的旧版本里,说明没按 Ctrl+Shift+Enter,选中单元格按 F2 进入编辑后再三键确认即可。

想改数组公式里的某一格?传统数组公式占用整片区域,要改必须先选中整片区域再统一修改;动态数组只改左上角那个公式就行。

数据量大会卡吗?会。数组公式对整列引用(如 A:A)计算量非常大,建议限定实际范围,写成 A2:A1000 更稳。

数组公式能复制到别的位置吗?可以。传统三键公式复制后仍占用一整片区域,粘贴前要先选中同样大小的区域;动态数组只粘一个单元格就行。

小结:数组公式就是「区域当整体算」,记住 =SUM(区域1*区域2) 这个万能开头,再按版本决定要不要三键,多行计算从此不用辅助列。

相关学习资料