ARTICLE · 1204101
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! 错误,清空阻挡区域即可。
五、常见问题
结果只有一个数?如果在需要三键的旧版本里,说明没按 Ctrl+Shift+Enter,选中单元格按 F2 进入编辑后再三键确认即可。
想改数组公式里的某一格?传统数组公式占用整片区域,要改必须先选中整片区域再统一修改;动态数组只改左上角那个公式就行。
数据量大会卡吗?会。数组公式对整列引用(如 A:A)计算量非常大,建议限定实际范围,写成 A2:A1000 更稳。
数组公式能复制到别的位置吗?可以。传统三键公式复制后仍占用一整片区域,粘贴前要先选中同样大小的区域;动态数组只粘一个单元格就行。
小结:数组公式就是「区域当整体算」,记住 =SUM(区域1*区域2) 这个万能开头,再按版本决定要不要三键,多行计算从此不用辅助列。















































































