工作中最频繁的数据操作,归结起来就是三件事:加总、算均值、数个数。月底财务要把各部门的费用加在一起算出总支出,仓库要按品类统计平均入库单价,人事要数清楚各岗位到底有多少人到岗。如果数据只有二三十行,手动拿计算器按几下就行。但当行数上了几百甚至几千,手动汇总既慢又容易出错——漏加一行、多数一格,整份报表的结论就跟着偏了。
Excel 提供了一组专门处理这类需求的统计函数。从最基础的全量求和,到按条件筛选后再求和、求平均、计数,覆盖了日常统计中绝大部分场景。这些函数之间存在清晰的递进关系——先学会 SUM,再学 SUMIF 和 SUMIFS,后面的 AVERAGE 系列和 COUNT 系列在语法结构上高度相似,学习成本会越来越低。
求和是数据统计中最基础也最高频的操作。Excel 的求和函数从简单到复杂分为三个层级:SUM 对整个区域无条件求和,SUMIF 按一个条件筛选后求和,SUMIFS 支持同时设定多个条件。
一份季度销售数据表,D 列是每笔订单的金额,一共 200 行。要算出这个季度的总销售额,最直接的办法就是用 SUM 函数把 D 列所有金额加在一起。
语法:
SUM(number1, [number2], ...)
参数说明:number1 是必填的,可以是一个数值、一个单元格引用或一个区域;后面的参数可选,最多支持 255 个参数。
实际写法:
=SUM(D2:D201)
这个公式把 D2 到 D201 共 200 个单元格中的数值全部加起来,返回总和。
SUM 函数也可以同时对多个不连续的区域求和。假设一份费用表中,C 列是办公用品费用,E 列是差旅费用,G 列是招待费用,要算出三类费用的总额:
=SUM(C2:C50, E2:E50, G2:G50)
三个区域的数值被一次性加总,不需要写三个 SUM 再相加。

点击下载模板:SUM求和-练习模板.xlsx
SUM 函数会自动忽略区域中的文本和空白单元格,只对数值求和。但如果某个单元格中的数字实际上是文本格式(左上角有绿色小三角提示),SUM 不会把它算进去。遇到求和结果不对时,先检查是否存在“长得像数字但实际是文本”的单元格。
SUM 是全量求和,但很多时候不需要把所有数据加在一起,而是只统计满足某个条件的部分。
一份全公司的月度费用明细表,B 列是部门名称,D 列是费用金额。财务部需要单独统计「市场部」这个月一共花了多少钱——不是全公司的总费用,而是只把 B 列等于“市场部”的那些行对应的 D 列金额加起来。这就是 SUMIF 的典型场景。
语法:
SUMIF(range, criteria, [sum_range])
实际写法:
=SUMIF(B2:B500, "市场部", D2:D500)
这个公式的执行逻辑是:逐行检查 B2 到 B500,凡是内容等于“市场部”的行,就把同一行 D 列的金额累加起来。
条件不局限于精确匹配文本,还支持比较运算符和通配符:
用一份实际数据来看效果:
=SUMIF(A2:A6, "市场部", C2:C6)
结果是 58000,即 35000 + 8000 + 15000,只有 A 列为“市场部”的三行被纳入求和。

点击下载模板:SUMIF单条件求和-练习模板.xlsx
SUMIF 的条件不区分大小写。“市场部”和“市场部”匹配,“abc”和“ABC”也匹配。如果需要区分大小写的条件求和,要结合 SUMPRODUCT 函数和 EXACT 函数实现,但日常工作中极少遇到这种需求。
SUMIF 只能设定一个条件,而实际工作中经常需要同时满足多个条件才求和。
还是那份费用明细表,这次的需求变了:不是统计市场部的全部费用,而是统计「市场部」在「广告投放」这个类别下的费用总额。两个条件同时满足才计入——部门必须是市场部,费用类别必须是广告投放。SUMIF 做不到这一点,需要用 SUMIFS。
语法:
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
和 SUMIF 相比,SUMIFS 有两个关键变化:第一个参数变成了求和区域(SUMIF 的求和区域在最后),后面可以跟多组“条件区域+条件”的配对,最多支持 127 组条件。
实际写法:
=SUMIFS(D2:D500, B2:B500, "市场部", C2:C500, "广告投放")
执行逻辑:逐行同时检查 B 列是否等于“市场部”且 C 列是否等于“广告投放”,两个条件同时满足的行,才把 D 列的金额累加。

点击下载模板:SUMIFS多条件求和-练习模板.xlsx
再看一个更贴近实际的场景。一份全年销售记录表,A 列是销售日期,B 列是销售员姓名,C 列是产品类别,D 列是销售金额。要统计「王磊」在「2025 年下半年」卖出的「电子产品」总金额:
=SUMIFS(D2:D5000, B2:B5000, "王磊", C2:C5000, "电子产品", A2:A5000, ">="&DATE(2025,7,1), A2:A5000, "<"&DATE(2026,1,1))
这里用了四组条件:销售员是王磊、产品类别是电子产品、日期大于等于 2025 年 7 月 1 日、日期小于 2026 年 1 月 1 日。四个条件全部满足的行才参与求和。
SUMIF 和 SUMIFS 的参数顺序不同。SUMIF 是“条件区域、条件、求和区域”,SUMIFS 是“求和区域、条件区域1、条件1、条件区域2、条件2……”。写公式时如果把参数顺序搞混,不会报错但结果会完全不对。建议记住一个口诀:SUMIFS 把求和区域放在最前面。
SUM → SUMIF → SUMIFS 是一条递进路线。SUM 不加任何限制,有多少加多少;SUMIF 加一道筛子,只加符合条件的;SUMIFS 加多道筛子,条件越多筛得越精准。理解了这个递进关系,后面的 AVERAGE 系列和 COUNT 系列就是同样的套路。
求平均和求和的逻辑几乎一样,只是最终的计算方式从“累加”变成了“累加后除以个数”。AVERAGE、AVERAGEIF、AVERAGEIFS 三个函数的参数结构与 SUM 系列一一对应,学会了 SUM 系列再看这三个函数,上手非常快。
一份季度考试成绩表,E 列是每位学生的总分,一共 60 人。要算出全班的平均分,用 AVERAGE 函数一步到位。
语法:
AVERAGE(number1, [number2], ...)
参数结构和 SUM 完全一样。区别在于 SUM 返回总和,AVERAGE 返回算术平均值(总和除以数值个数)。
实际写法:
=AVERAGE(E2:E61)
如果 60 个学生的总分之和是 42600,AVERAGE 返回的结果是 710(42600 ÷ 60)。
一个需要留意的地方:AVERAGE 在计算个数时,只统计区域中包含数值的单元格。如果 E2:E61 中有 3 个空白单元格(某些学生缺考没有成绩),AVERAGE 的分母是 57 而不是 60——空白格既不参与求和也不参与计数。但如果缺考的学生成绩填了 0,那这个 0 会被计入,分母仍然是 60。
空白和 0 在 AVERAGE 中的处理方式不同。如果业务上需要把缺考学生也算进平均分的分母(相当于缺考计 0 分),就要在空白格里填上 0。如果只想算实际参加考试的人的平均分,保持空白即可。填不填 0,取决于业务口径。
和 SUMIF 的关系一样,AVERAGEIF 是给 AVERAGE 加上一个筛选条件。
一份员工月度绩效表,A 列是部门,B 列是姓名,C 列是绩效得分。人事部想知道「技术部」的平均绩效得分是多少——不是全公司的平均分,而是只算技术部员工的平均分。
语法:
AVERAGEIF(range, criteria, [average_range])
参数结构和 SUMIF 完全一致:
实际写法:
=AVERAGEIF(A2:A200, "技术部", C2:C200)
逐行检查 A 列,凡是等于“技术部”的行,把 C 列的绩效得分收集起来求平均值。
用一份实际数据来看效果:
=AVERAGEIF(A2:A6, "技术部", C2:C6)
结果是 88.33,即 (88 + 92 + 85) ÷ 3。只有 A 列为“技术部”的三行参与计算。

点击下载模板:AVERAGEIF条件求平均-练习模板.xlsx
AVERAGEIF 的条件写法和 SUMIF 完全通用,支持比较运算符和通配符。比如统计绩效得分高于 85 分的员工的平均分:
=AVERAGEIF(C2:C200, ">85")
条件区域和求平均区域是同一列时,第三个参数可以省略。
AVERAGEIFS 支持多条件求平均,参数结构和 SUMIFS 一一对应。
继续用绩效表的场景:统计「技术部」中「绩效得分高于 80 分」的员工的平均得分。两个条件必须同时满足。
语法:
AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
和 SUMIFS 一样,求平均的区域放在第一个参数位置,后面跟多组“条件区域+条件”。
实际写法:
=AVERAGEIFS(C2:C200, A2:A200, "技术部", C2:C200, ">80")
执行逻辑:A 列是“技术部”且 C 列大于 80 的行,取 C 列的值求平均。
再看一个实际案例。一份门店运营数据表,A 列是城市,B 列是门店类型(直营/加盟),C 列是月营业额。要统计「上海」的「直营」门店的平均月营业额:
=AVERAGEIFS(C2:C300, A2:A300, "上海", B2:B300, "直营")
只有城市是上海且门店类型是直营的行才参与平均值计算。
AVERAGEIFS 中如果没有任何行满足全部条件,公式返回的不是 0 而是 #DIV/0! 错误。这是因为没有符合条件的数据意味着分母为 0。可以用 IFERROR 包裹来处理这种情况:=IFERROR(AVERAGEIFS(...), 0),当没有匹配数据时显示 0 而不是报错。
计数的需求和求和、求平均一样常见。有多少笔订单?有多少人交了表?有多少个空格还没填?Excel 提供了三个计数函数,各自适用于不同的统计对象。
COUNT 统计的是区域中包含数值的单元格个数。注意,它只数“数值”——纯数字、日期(日期在 Excel 底层也是数值)、以数字形式存在的内容。文本、空白、错误值都不算。
语法:
COUNT(value1, [value2], ...)
一份考试成绩表,D 列是各科成绩。有些学生缺考,成绩栏为空;有些学生的成绩栏被误填成了“缺考”二字。要统计实际有成绩记录(数值)的学生人数:
=COUNT(D2:D61)
假设 60 个格子中有 55 个填了数字成绩,3 个是空白,2 个填了文字“缺考”,COUNT 返回 55——只统计纯数值。
COUNTA 统计的是区域中所有非空单元格的个数,不管内容是数字、文本、公式结果还是错误值,只要单元格里有东西就算一个。唯一不算的就是完全为空的单元格。
语法:
COUNTA(value1, [value2], ...)
人事部做月度考勤统计,E 列是“备注”栏,员工填了备注就有内容(可能是“已提交”“待审批”“补交中”等文字),没填的就是空白。要统计有多少人填写了备注:
=COUNTA(E2:E201)
200 个格子中只要有内容的都被计数,不管内容是文字还是数字。
来看 COUNT 和 COUNTA 在同一组数据上的不同结果:
同样 5 个单元格,COUNT 返回 2(只有 85 和 0 是数值),COUNTA 返回 4(除了空白格之外全部计入)。

点击下载模板:COUNT计数对比-练习模板.xlsx
如果一个单元格看起来是空的,但实际上包含一个空格字符或者一个空字符串公式(比如 =“”),COUNTA 会把它算作非空。这种“隐形内容”在从外部系统导入数据时经常出现,导致 COUNTA 的统计结果偏高。可以在可疑的“空”单元格上按 F2 进入编辑模式,确认里面是否真的什么都没有。
COUNTBLANK 和 COUNTA 正好相反,它统计的是区域中空白单元格的个数。
语法:
COUNTBLANK(range)
参数只有一个——要检查的单元格区域。
场景:期末考试成绩录入后,教务处需要检查哪些学生的成绩还没有填上去。F 列一共 300 行,要快速知道还剩多少个空格没填:
=COUNTBLANK(F2:F301)
如果返回 12,说明还有 12 个学生的成绩没有录入。
COUNTBLANK 在数据完整性检查中非常实用。一份有 500 行 10 列的员工信息表,要检查每一列有多少个空格,可以在表格底部为每一列各写一个 COUNTBLANK 公式,哪一列的数字最大,就说明那一列缺失最严重,需要优先补录。
理解这三者之间的区别,关键在于看统计的对象是什么:COUNT 只认数字,COUNTA 只排除空白,COUNTBLANK 只找空白。在同一个区域上,COUNTA 的结果加上 COUNTBLANK 的结果,等于这个区域的总单元格数量。
用一个具体案例串起来。一份调查问卷回收表,A 列是“姓名”(文本),B 列是“评分”(数字 1 到 5),C 列是“意见”(文本或空白)。一共发出 100 份问卷:
四个公式配合使用,一份问卷的回收率、有效率、意见填写率全部算出来了。
计数函数没有像 SUMIF/SUMIFS 那样的条件版本,但 Excel 提供了 COUNTIF 和 COUNTIFS 函数来实现按条件计数。比如统计 B 列评分中有多少人打了 5 分:=COUNTIF(B2:B101, 5)。COUNTIF 和 COUNTIFS 的参数结构与 SUMIF 和 SUMIFS 高度一致,掌握了前者就能直接套用。
统计函数的核心思路是三个动作——加总、均值、计数,每个动作都有三种粒度:无条件(SUM / AVERAGE / COUNT)、单条件(SUMIF / AVERAGEIF / COUNTIF)、多条件(SUMIFS / AVERAGEIFS / COUNTIFS)。九个函数的参数结构两两对应,学会任意一组三个,剩下两组只需要替换函数名,条件写法完全通用。