Excel AVERAGEIF 按条件求平均怎么用
想算销售部的平均工资、数学课的平均分、某个地区的平均销售额——这类「只对满足条件的行求均值」的需求,Excel 里有专门的函数:AVERAGEIF(单条件)和 AVERAGEIFS(多条件)。本文把写法、参数顺序、最容易踩的几个坑一次讲清,再给你介绍一个不用写函数就能出所有分组均值的做法。
AVERAGEIF:单条件按条件求平均
AVERAGEIF 的语法是:
=AVERAGEIF(条件区域, 条件, 求平均的区域)
举个例子:表格 A 列是「部门」,B 列是「工资」,要算销售部的平均工资,在空白单元格写:
=AVERAGEIF(A2:A100, "销售部", B2:B100)
三个参数依次是:
- A2:A100:用来判断条件的那一列(部门列);
- "销售部":匹配的条件,文本要加双引号;
- B2:B100:真正用来求平均的数值列(工资列)。
如果条件写在某个单元格(比如 D2),可以直接引用,不加引号:
=AVERAGEIF(A2:A100, D2, B2:B100)
条件还支持通配符。比如只要部门名里包含「销售」的都算进去:
=AVERAGEIF(A2:A100, "*销售*", B2:B100)
或者算工资大于 8000 的平均工资:
=AVERAGEIF(B2:B100, ">8000")
注意:当条件区域和求平均区域是同一列时,第三个参数可以省略——直接 =AVERAGEIF(B2:B100, ">8000") 即可。
AVERAGEIFS:多条件按条件求平均
需要同时满足多个条件,就用 AVERAGEIFS。语法比 AVERAGEIF 稍有不同:
=AVERAGEIFS(求平均区域, 条件区域1, 条件1, 条件区域2, 条件2, …)
关键区别:AVERAGEIFS 的「求平均区域」排在第一位,条件区域和条件从第二个参数开始成对出现。这是新手最容易搞反的地方。
例子:算销售部中工资高于 8000 的员工平均工资:
=AVERAGEIFS(B2:B100, A2:A100, "销售部", B2:B100, ">8000")
再加一个条件——只看 2025 年入职的(C 列为入职年份):
=AVERAGEIFS(B2:B100, A2:A100, "销售部", B2:B100, ">8000", C2:C100, 2025)
条件对数没有上限,按需叠加即可。
常见易错点
即使公式写对了,结果也可能不对。下面是几个高频踩坑场景:
空值和 0 值的处理方式不同
AVERAGEIF / AVERAGEIFS 在计算均值时,空白单元格不参与平均,但 0 会参与平均并拉低结果。如果数据里有本该是空白但实际填了 0 的单元格,平均值会偏低。遇到这种情况,可以先用条件把 0 排除:
=AVERAGEIFS(B2:B100, A2:A100, "销售部", B2:B100, "<>0")
参数顺序不要搞反
AVERAGEIF 是「条件区域 → 条件 → 求平均区域」;AVERAGEIFS 是「求平均区域 → 条件区域1 → 条件1 → …」。两个函数顺序不一样,混用时很容易出错,写的时候最好对着参数提示慢慢确认。
文本条件必须加引号
条件是文本时(如 "销售部"、">8000")必须加英文双引号,否则会报错或计算结果异常。如果条件引用的是单元格(如 D2),则不加引号直接写单元格地址。
条件区域和求平均区域大小必须一致
比如条件区域写了 A2:A100,求平均区域也要是 B2:B100(99 行),两者行数不一样会返回错误。
更简单:用超级表「分组汇总」选「平均」,点几下出所有组的均值
超级表(TableDI)是一款桌面端高能表格助手,支持 macOS 和 Windows,本地离线运行,不需要登录。它的「分组汇总」功能可以一步出所有分组的均值,不用一个部门写一条 AVERAGEIF。步骤:
- 把数据导入超级表(Excel / CSV 直接拖进来,或粘贴)。
- 点击顶部工具栏的「分组汇总」。
- 在「分组维度」里选你要分组的列,比如「部门」。
- 在「汇总方式」里把目标列(如「工资」)的汇总方式改为「平均」。
- 点击确认——所有部门的平均工资一次全出来,无需写公式。
如果需要多维度分组(比如同时按部门 + 年份分组),在分组维度里多选几列即可,超级表会自动计算每个组合的均值。想同时看某组的均值和总和,汇总方式可以对同一列同时选「平均」和「求和」,两列数字并列展示。
汇总结果还可以直接导出 Excel,或者进一步连接看板,让图表随数据实时更新。
AVERAGEIF 公式 vs 超级表分组汇总
| 对比项 | Excel AVERAGEIF / AVERAGEIFS | 超级表分组汇总 |
|---|---|---|
| 操作方式 | 手写公式,记参数顺序 | 点选维度和汇总方式,无需写公式 |
| 一次看所有分组 | 每个分组写一条公式 | 一次出所有组的均值 |
| 多条件组合 | AVERAGEIFS 参数增多,易写错 | 多选维度列即可 |
| 同时看均值+总和 | 需要写两列不同公式 | 同一列选多种汇总方式 |
| 数据更新后 | 公式自动重算(需注意范围是否够) | 分组结果自动刷新 |
| 连接图表看板 | 需要额外搭建 | 内置看板,均值可直接图形化 |
常见问题
单元格里有空格,算不算进平均值?
空白单元格不算。但如果单元格里有空格字符(看上去是空的,实际存了一个或多个空格),Excel 会当作文本处理,条件为文本的 AVERAGEIF 可能错误匹配。建议先用 TRIM 函数或「查找替换」清理空格后再做统计;在超级表里可以用 AI 处理功能一键清洗。
AVERAGEIF 和 AVERAGE 有什么区别?
AVERAGE 是对一个区域里所有数值无条件求均值,不管哪个部门、哪个类别全部算在一起。AVERAGEIF 则只对满足条件的行求均值,相当于「先筛选,再 AVERAGE」。如果你只想先筛选数据再看均值,也可以直接用 Excel 的筛选功能配合状态栏的平均值,但无法直接写进单元格供后续引用。
能同时算某部门的均值和总和吗?可以链接到哪里?
在 Excel 里需要分别写 AVERAGEIF 和 SUMIF 两个公式——关于 SUMIF 的详细写法可以看Excel SUMIF 按条件求和。在超级表里,分组汇总一次选多种汇总方式(均值 + 求和),结果并列显示,导出或接看板都支持。