Excel AVERAGEIFS 多条件求平均怎么用
只想算「研发部 P7 级别」的平均薪资,或「华东区 Q2」的平均销售额?这类按多个条件求平均的需求,正是 AVERAGEIFS 的用武之地。本文讲清语法、多条件写法和常见易错点,并教你用超级表分组汇总,多个维度一次拉出所有组的平均值,不用手写一条公式。
AVERAGEIFS 语法和基本用法
AVERAGEIFS 是 Excel 2007 及以上版本内置的多条件平均函数,语法如下:
=AVERAGEIFS(求平均区, 条件区1, 条件1, 条件区2, 条件2, ...)
和 SUMIFS、COUNTIFS 保持同一套逻辑:先写「要平均哪列」,再成对写「在哪列判断、判断什么」。最多可叠加 127 对条件。
举个例子:下表是员工薪资,A 列部门、B 列职级、C 列月薪。想算「研发部 P7 」的平均月薪:
=AVERAGEIFS(C2:C100, A2:A100, "研发部", B2:B100, "P7")
- C2:C100:被平均的数值区域(月薪列);
- A2:A100, "研发部":第一个条件——A 列等于「研发部」;
- B2:B100, "P7":第二个条件——B 列等于「P7」;
- 同时满足两个条件的行才纳入平均计算。
结果就是所有「研发部 P7」员工的平均月薪。要增加第三个条件,继续追加一对「条件区, 条件值」即可。
配合比较符和通配符写更灵活的条件
条件值不只能写死字符串,还能用比较符和通配符,让公式更灵活:
- 比较符:
">=20000"、"<5000"——算月薪在某个区间内的平均值。例如算月薪大于等于 20000 的研发部员工的平均薪资:=AVERAGEIFS(C2:C100, A2:A100, "研发部", C2:C100, ">=20000") - 通配符
*:匹配任意字符。例如条件写"研发*",可同时匹配「研发部」「研发中心」「研发一组」等。 - 通配符
?:匹配单个字符。"P?"可匹配 P1~P9,但不匹配 P10。 - 引用单元格:条件值可以引用单元格,如
E2,这样改 E2 的内容公式自动重算,方便做下拉筛选联动。
>=20000 要写成字符串 ">=20000",不能直接写 >=20000;或写成 ">="&E2 来引用单元格的数值。
AVERAGEIFS 和 AVERAGEIF 的区别
两者功能相近,核心差别只有一个:条件数量。
- AVERAGEIF:只支持单个条件,语法是
=AVERAGEIF(条件区, 条件, 求平均区)。注意参数顺序和 AVERAGEIFS 相反——求平均区排在最后。 - AVERAGEIFS:支持多个条件,求平均区排在最前面,然后成对追加条件。
如果只有一个条件,两者都能用,但写法不同,别搞混参数顺序。只要条件超过一个,必须用 AVERAGEIFS。想了解单条件的详细用法,参见AVERAGEIF 单条件求平均。
常见易错点
AVERAGEIFS 使用中有几个地方特别容易出错,提前知道能省不少调试时间:
1. 各区域大小必须一致
求平均区和每个条件区的行数必须完全相同,否则 Excel 会报 #VALUE! 错误。选区时最好统一用同一个行范围,比如都写 2:100,不要一个写 C2:C50、另一个写 A2:A100。
2. 空值和 0 的处理
AVERAGEIFS 在计算均值时,只平均满足所有条件的行:
- 求平均区里的空单元格会被跳过,不计入分母(不影响平均数);
- 求平均区里的 0 会被计入,会拉低平均值——如果 0 代表「无数据」,需要先用 AVERAGEIFS 配合
"<>0"条件把它排除; - 如果满足所有条件的行一行都没有,结果是
#DIV/0!,可以用IFERROR套住返回 0 或空文本。
3. 文本条件必须用双引号
条件是文本时必须加英文双引号:"研发部"。忘加引号,Excel 会把它当成命名区域或变量来解析,通常直接报错或得出错误结果。引用单元格则不加引号,直接写单元格地址,如 D2。
4. 日期条件要统一格式
如果条件区是日期列,条件值必须是 Excel 能识别的日期格式,或用 DATE() 函数构造,不要直接写文本字符串 "2025/01/01"——不同系统区域设置下识别结果不一致。
更省事:超级表分组汇总,多维度一次求平均
AVERAGEIFS 每次只能算一个「指定条件组合」的平均值。如果你想一口气看到所有部门 × 职级组合的平均薪资,就要为每个组合单独写一条公式,表格一大,维护起来非常麻烦。
超级表(TableDI)的分组汇总功能天然解决了这个问题——选好分组维度和汇总方式,一张完整的分组平均表立刻出来,不用手写任何公式:
- 把员工薪资表导入超级表(支持 Excel / CSV 直接拖入)。
- 点击顶部工具栏「分组汇总」按钮,进入分组配置面板。
- 在「分组维度」里依次添加部门列和职级列(可多选,顺序即分组层级)。
- 在「汇总方式」里选择月薪列,汇总类型选「平均」。
- 点击「生成」——所有部门 × 职级组合的平均薪资一次全部算出,结果以表格呈现,可直接导出。
换一组维度只需在面板里改选,不用重写公式。想了解 COUNTIFS 多条件计数的写法,参见COUNTIFS 多条件计数。
AVERAGEIFS vs 超级表分组汇总
| 对比项 | Excel AVERAGEIFS | 超级表分组汇总 |
|---|---|---|
| 适合场景 | 精确查某一个条件组合的平均值 | 一次看所有组合的平均值 |
| 使用方式 | 记语法、写公式、注意参数顺序 | 点选维度和汇总类型,无需写公式 |
| 多组结果 | 每个组合写一条公式 | 一次生成全部组合结果 |
| 维度调整 | 改公式、拖行列 | 在面板里改选,秒出新结果 |
| 空值 / 0 处理 | 需手动加 <>0 条件排除 | 界面选项控制,直观 |
| 学习成本 | 需记语法和易错点 | 零公式,拖入即用 |
常见问题
AVERAGEIFS 结果是 #DIV/0! 怎么办?
说明满足所有条件的行一行都没有,分母为零导致除法错误。先检查条件写法——文本条件是否加了引号、条件值是否与实际数据完全匹配(注意全角半角、多余空格)。确认逻辑无误但就是没有匹配行时,用 IFERROR 包住,返回 0 或空字符串,例如:=IFERROR(AVERAGEIFS(...),"无数据")。
条件可以用 OR(或)逻辑吗?
AVERAGEIFS 的多个条件之间是 AND(与)关系,不原生支持 OR 逻辑。若要实现「部门 A 或部门 B 的平均薪资」,通常的做法是分别用两条 AVERAGEIFS 算出结果再做加权平均,或改用数组公式 AVERAGEIF + 多范围写法。情况复杂时,超级表分组汇总更直观——把所有部门的平均值一次算出来,再手动合并目标行即可。
超级表的分组汇总免费吗?
超级表桌面版免费下载,离线本地运行,分组汇总是核心功能,免费使用。导出超过每表 1000 行、AI 插件、工作流等进阶能力按需升级,个人版年付 ¥199(省 ¥149),终身买断 ¥599。