Excel 公式

Excel AVERAGEIFS 多条件求平均怎么用

更新于 2026-06-04 · 阅读约 6 分钟

只想算「研发部 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)分组汇总功能天然解决了这个问题——选好分组维度和汇总方式,一张完整的分组平均表立刻出来,不用手写任何公式:

  1. 把员工薪资表导入超级表(支持 Excel / CSV 直接拖入)。
  2. 点击顶部工具栏「分组汇总」按钮,进入分组配置面板。
  3. 在「分组维度」里依次添加部门列和职级列(可多选,顺序即分组层级)。
  4. 在「汇总方式」里选择月薪列,汇总类型选「平均」。
  5. 点击「生成」——所有部门 × 职级组合的平均薪资一次全部算出,结果以表格呈现,可直接导出。

换一组维度只需在面板里改选,不用重写公式。想了解 COUNTIFS 多条件计数的写法,参见COUNTIFS 多条件计数

超级表的分组汇总支持哪些汇总方式?
支持求和、平均、计数、最大值、最小值,选好分组维度后一次全部出来,不需要为每种算法单独写一条 SUMIFS / AVERAGEIFS / 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。

不想为每个条件组合单独写公式?

免费下载超级表,分组汇总点几下,所有维度的平均值一次全出来

免费下载(macOS / Windows)