Skip to main content

average

详解:AVERAGE()、AVERAGEIF()、AVERAGEIFS()

一、AVERAGE() 函数​

用途​

求行求列求区域的平均值

语法​

AVERAGE(number1, [number2], ...)

参数说明​

  • number1:必需。要计算平均值的第一个数字、单元格引用或范围
  • number2, ...:可选。最多可包含255个参数
  • 自动忽略:文本、逻辑值、空单元格
  • 包含0值:0值会参与计算

示例数据表1:学生成绩表​

ABCDE
学号姓名语文数学英语
S001张三859278
S002李四789588
S003王五928876
S004赵六456558

示例题目​

  1. 计算张三的平均分

    =AVERAGE(C2:E2)
    结果:(85+92+78)/3 = 85
  2. 计算所有学生的语文平均分

    =AVERAGE(C2:C5)
    结果:(85+78+92+45)/4 = 75
  3. 计算全班所有科目平均分

    =AVERAGE(C2:E5)
    结果:所有12个成绩的平均值

二、AVERAGEIF() 函数​

用途​

按单个条件求列求行的平均值

它的工作方式是:在“条件区域”中找符合“条件”的单元格,然后返回对应位置的“求值区域”的值进行平均。

但求值区域必须是单列或单行,不能是多列区域,否则会出错或返回意想不到的结果。

语法​

AVERAGEIF(range, criteria, [average_range])

参数说明​

  • range:必需。条件判断的区域
  • criteria:必需。筛选条件
    • 数字:90
    • 文本:"北京"(必须用引号)
    • 表达式:">=60"
    • 通配符:"张*"
  • average_range:可选。要计算平均值的实际区域
    • 如果省略,则对range参数指定的区域求平均

示例数据表2:员工工资表​

ABCD
部门姓名工资奖金
销售部张三80002000
技术部李四120003000
销售部王五90002500
人事部赵六70001500
销售部孙七85001800

示例题目​

  1. 计算销售部的平均工资

    =AVERAGEIF(A2:A6, "销售部", C2:C6)
    结果:(8000+9000+8500)/3 = 8500
  2. 计算工资大于8000的平均奖金

    =AVERAGEIF(C2:C6, ">8000", D2:D6)
    结果:(3000+2500)/2 = 2750
  3. 计算所有部门的平均工资(使用通配符)

    =AVERAGEIF(A2:A6, "*部", C2:C6)
    结果:所有部门的平均工资
  4. 计算销售部所有数值的平均(省略第三参数)

    =AVERAGEIF(A2:A6, "销售部")
    ⚠️ 注意:这会计算A列中"销售部"对应的所有数值列的平均

示例1:双条件平均值

A列:部门 B列:职级 C列:工资

求"技术部""高级"员工的平均工资:
=AVERAGEIFS(C:C, A:A,"技术部", B:B,"高级")

示例2:多条件组合

求"销售部"在"北京"且工龄>5年的平均业绩:
=AVERAGEIFS(业绩列, 部门列,"销售部", 地区列,"北京", 工龄列,">5")

示例3:日期范围条件

A列:日期 B列:温度

求2024年夏季(6-8月)平均温度:
=AVERAGEIFS(B:B, A:A,">=2024-06-01", A:A,"<=2024-08-31")

示例4:技术部P7级平均绩效:

=AVERAGEIFS(绩效分数列, 部门列,"技术部", 职级列,"P7")

示例5:工龄3-5年且绩效>85的平均奖金:

=AVERAGEIFS(奖金列, 工龄列,">=3", 工龄列,"<=5", 绩效分数列,">85")

示例6:排除试用期员工的平均绩效:

=AVERAGEIFS(绩效分数列, 状态列,"<>试用期")

单行求平均值​

月份: Jan Feb Mar Apr May Jun
销售额:100 80 120 90 150 70
目标: >90 >90 >90 >90 >90 >90

三、AVERAGEIFS() 函数​

用途​

按多个条件,对单个列或单行的数值区域求平均值

语法​

AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

参数说明​

  • average_range:必需。要计算平均值的实际区域
  • criteria_range1:必需。第一个条件区域
  • criteria1:必需。第一个条件
  • 后续参数:可选。最多可添加127个条件区域/条件对
  • 参数顺序不同:注意与COUNTIFS的参数顺序区别!

示例数据表3:销售业绩表​

ABCDE
销售员区域产品销量金额
张三北京手机50150000
李四上海电脑30210000
王五北京手机40120000
赵六广州平板2060000
张三上海手机35105000
李四北京电脑25175000

示例题目​

  1. 计算北京地区手机的平均销量

    =AVERAGEIFS(D2:D7, B2:B7, "北京", C2:C7, "手机")
    结果:(50+40)/2 = 45
  2. 计算张三在上海的平均销售金额

    =AVERAGEIFS(E2:E7, A2:A7, "张三", B2:B7, "上海")
    结果:105000
  3. 计算销量大于30且金额大于100000的平均金额

    =AVERAGEIFS(E2:E7, D2:D7, ">30", E2:E7, ">100000")
    结果:(150000+210000+105000)/3 = 155000
  4. 三个条件:北京地区、张三、手机产品

    =AVERAGEIFS(E2:E7, B2:B7, "北京", A2:A7, "张三", C2:C7, "手机")
    结果:无符合条件的记录 → 返回 #DIV/0! 错误

四、对比总结​

特性AVERAGEAVERAGEIFAVERAGEIFS
用途求行求列求区域平均值求单列单行平均值求单列单行平均值
条件数量无条件单条件多条件
参数顺序数值区域条件区域,条件,[求值区域]求值区域,条件区域1,条件1,...
通配符不支持支持支持
忽略内容文本、逻辑值不满足条件的单元格不满足任一条件的单元格
错误处理忽略错误值条件区域含错误值返回错误任一条件区域含错误值返回错误
求值区域位置直接参数第三个参数第一个参数

五、特殊用法和注意事项​

1. 忽略0值的平均值​

=AVERAGEIF(C2:C10, "<>0") // 计算非0值的平均

2. 排除特定文本的平均​

=AVERAGEIF(A2:A10, "<>N/A", B2:B10) // 排除"N/A"文本

3. 基于日期的条件平均​

=AVERAGEIFS(D2:D100, C2:C100, ">=2024-1-1", C2:C100, "<=2024-1-31")

4. 多列平均的替代方案​

AVERAGEIF不能直接对多列求平均,解决方案:

=AVERAGE(FILTER(D2:H100, C2:C100="1班"))

六、综合练习​

练习数据表​

ABCD
班级姓名性别总分
1班张三男450
1班李四女480
2班王五男420
1班赵六男460
2班孙七女490
3班周八男430
1班吴九女470
3班郑十女440

练习题​

  1. 计算所有学生的平均总分
  2. 计算1班的平均总分
  3. 计算男生的平均总分
  4. 计算1班女生的平均总分
  5. 计算总分大于450的学生的平均总分
  6. 计算2班和3班的平均总分(使用两个条件)
  7. 计算1班男生且总分大于460的平均分

参考答案​

1. =AVERAGE(D2:D9) → 455
2. =AVERAGEIF(A2:A9, "1班", D2:D9) → (450+480+460+470)/4 = 465
3. =AVERAGEIF(C2:C9, "男", D2:D9) → (450+420+460+430)/4 = 440
4. =AVERAGEIFS(D2:D9, A2:A9, "1班", C2:C9, "女") → (480+470)/2 = 475
5. =AVERAGEIF(D2:D9, ">450") → (480+460+490+470)/4 = 475
6. =AVERAGEIFS(D2:D9, A2:A9, "2班") + 或单独计算两个班
更准确:=AVERAGE(FILTER(D2:D9, (A2:A9="2班")+(A2:A9="3班")))
7. =AVERAGEIFS(D2:D9, A2:A9, "1班", C2:C9, "男", D2:D9, ">460")
→ 无符合条件的 → #DIV/0!

七、常见错误和解决方法​

错误原因解决方法
#DIV/0!没有符合条件的单元格用IFERROR包装:=IFERROR(AVERAGEIF(...), "无数据")
#VALUE!条件区域与求值区域大小不一致确保区域大小相同
结果不正确文本数字未被识别确保数值格式正确
忽略0值0值参与计算使用=AVERAGEIF(range, "<>0")

八、实战技巧​

技巧1:动态条件平均​

=AVERAGEIFS(销售额, 日期, ">="&开始日期, 日期, "<="&结束日期)

技巧2:排除空值和错误值​

=AVERAGEIFS(数据区域, 数据区域, "<>", 数据区域, "<>#N/A")

技巧3:多条件或关系(OR逻辑)​

=AVERAGE(FILTER(数据区域, (条件1)+(条件2)))

九、示例:学生成绩表​

表1:学生成绩统计表(20条记录)

学号姓名班级语文数学英语物理化学是否寄宿是否班干部
S001张三1班8592788890是是
S002李四1班7895887582是否
S003王五2班9288769085否是
S004赵六2班4565588572是否
S005孙七3班8896929295否是
S006周八3班7685797880是否
S007吴九1班9539946870否是
S008郑十2班8278858884是否
S009钱一3班8992878288否是
S010王一1班7368527665是否
S011刘二2班8479868987否否
S012陈三3班3942459288是是
S013杨四1班9187937781否否
S014黄五2班6771698479是是
S015赵七3班9896998592否是
S016周九1班5356519186是否
S017吴十2班8288857983否是
S018郑一3班8992878890是否
S019王二1班7469728377否是
S020孙三2班4751499691是否

示例1:计算学生平均分

在表1的K列(个人平均分):
=AVERAGE(D2:H2)

结果:
张三:(85+92+78+88+90)/5 = 86.6
李四:(78+95+88+75+82)/5 = 83.6
注意:忽略文本、逻辑值、空单元格

示例2:计算班级平均成绩

计算1班语文平均分:
=AVERAGEIF(C2:C20, "1班", D2:D20)

先用AVERAGE计算所有学生语文平均:
=AVERAGE(D2:D20)

结果:计算D列所有数值的平均值

示例3:计算多列平均值

计算所有理科平均分(物理+化学):
=AVERAGE(G2:H20) // G列物理,H列化学

或者分列计算:
=(AVERAGE(G2:G20) + AVERAGE(H2:H20))/2

示例5:计算班级平均分

计算1班语文平均分:
=AVERAGEIF(C2:C20, "1班", D2:D20)

解释:
range: C2:C20(班级列)
criteria: "1班"
average_range: D2:D20(语文成绩)
结果:1班所有学生语文成绩的平均值

示例6:计算及格学生平均分

计算数学及格(≥60)学生的平均分:
=AVERAGEIF(E2:E20, ">=60", E2:E20)

结果:数学成绩≥60的学生的数学平均分

示例7:计算寄宿生平均成绩

计算寄宿生语文平均分:
=AVERAGEIF(I2:I20, "是", D2:D20)

解释:
range: I2:I20(是否寄宿)
criteria: "是"
average_range: D2:D20(语文成绩)

示例8:使用通配符计算

计算姓"张"学生的数学平均分:
=AVERAGEIF(B2:B20, "张*", E2:E20)

结果:姓名以"张"开头的学生的数学平均分

示例12:多条件班级平均分

计算1班且寄宿的学生语文平均分:
=AVERAGEIFS(D2:D20, C2:C20, "1班", I2:I20, "是")

解释:
average_range: D2:D20(语文成绩)
criteria_range1: C2:C20(班级),criteria1: "1班"
criteria_range2: I2:I20(是否寄宿),criteria2: "是"

示例13:计算优秀学生平均分

计算数学≥90且英语≥90的学生平均分:
=AVERAGEIFS(D2:D20, E2:E20, ">=90", F2:F20, ">=90")

结果:数学和英语都≥90的学生的语文平均分

示例14:计算寄宿班干部平均成绩

计算寄宿且是班干部的学生数学平均分:
=AVERAGEIFS(E2:E20, I2:I20, "是", J2:J20, "是")
  1. 计算表1中所有学生的数学平均分
  2. 计算表1中1班寄宿生的语文平均分

十、示例:员工工资表​

完整数据表示例

ABCDE
部门姓名职级入职年份月薪
技术部张三P7201825000
销售部李四P6201918000
技术部王五P8201730000
人事部赵六P5202015000
技术部孙七P7201923000
销售部周八P6202117000

表2:员工销售业绩表(15条记录)

员工ID姓名部门1月业绩2月业绩3月业绩季度总额季度平均职级入职年限
SA001张明销售部158000142000165000465000155000A3
SA002李华销售部145000138000152000435000145000B5
SA003王芳技术部128000135000142000405000135000A2
SA004赵强财务部165000158000172000495000165000C8
SA005孙丽市场部142000148000155000445000148333B1
SA006周伟销售部135000128000140000403000134333B4
SA007吴刚技术部152000162000158000472000157333A6
SA008郑洁人事部138000145000148000431000143667B3
SA009钱勇财务部148000152000146000446000148667C7
SA010王静市场部125000132000128000385000128333C2
SA011刘洋销售部162000155000168000485000161667A4
SA012陈晨技术部155000148000162000465000155000B5
SA013杨光销售部132000138000135000405000135000B3
SA014黄蓉人事部142000135000148000425000141667C4
SA015赵云财务部158000152000165000475000158333A6

表3:产品库存与销售表(12条记录)

产品ID产品名称类别库存量安全库存上月销量本月销量平均售价成本价是否促销
P001iPhone 15手机1505012015059994500是
P002华为P60手机45308512049993800否
P003小米13手机1204011018039993000是
P004MacBook Pro电脑282025851499912000是
P005冰箱家电3525303589997000否
P006牛奶食品15304525128否
P007面包食品820353085是
P008羽绒服服装60401560599400否
P009防晒霜美妆25158258960是
P010月饼食品1205010120198120否
P011矿泉水饮料20010018020021否
P012巧克力食品182522125840是

各种平均值计算

1. 全体员工平均月薪:=AVERAGE(E:E) // 结果:21333

2. 技术部平均月薪:
=AVERAGEIF(A:A,"技术部",E:E) // 结果:26000

3. P7级平均月薪:
=AVERAGEIF(C:C,"P7",E:E) // 结果:24000

4. 技术部P7级平均月薪:
=AVERAGEIFS(E:E, A:A,"技术部", C:C,"P7") // 结果:24000

5. 2019年及以后入职的平均月薪:
=AVERAGEIFS(E:E, D:D,">=2019") // 结果:18250

6. 技术部且职级>=P7的平均月薪:
=AVERAGEIFS(E:E, A:A,"技术部", C:C,">=P7") // 结果:26000

7. 排除人事部的平均月薪:
=AVERAGEIF(A:A,"<>人事部",E:E) // 结果:22600


基础练习

  1. 计算表2中销售部员工的平均业绩
  2. 计算表3中促销产品的平均售价

中级练习

  1. 计算表2中职级A且入职>3年的员工平均业绩
  2. 计算表3中食品类别且库存>20的产品平均销量

示例4:计算员工季度平均业绩

在表2的H列(季度平均):
=AVERAGE(D2:F2)

结果:
张明:(158000+142000+165000)/3 = 155000
注意:已预计算好,演示公式

示例9:计算特定部门平均业绩

在表2计算销售部平均业绩:
=AVERAGEIF(C2:C16, "销售部", G2:G16)

结果:销售部所有员工季度平均业绩的平均值

示例10:计算高业绩员工平均

计算业绩>150000的员工平均:
=AVERAGEIF(G2:G16, ">150000", G2:G16)

结果:季度平均>150000的员工的平均值

示例11:计算非促销产品平均售价

在表3计算非促销产品平均售价:
=AVERAGEIF(J2:J13, "否", H2:H13) // J列是否促销,H列平均售价

结果:非促销产品的平均售价

示例15:销售部高绩效员工平均

在表2计算销售部且职级A的员工平均业绩:
=AVERAGEIFS(G2:G16, C2:C16, "销售部", H2:H16, "A")

解释:
average_range: G2:G16(季度平均)
criteria_range1: C2:C16(部门),criteria1: "销售部"
criteria_range2: H2:H16(职级),criteria2: "A"

示例16:多条件产品分析

在表3计算手机类别且促销中的产品平均售价:
=AVERAGEIFS(H2:H13, C2:C13, "手机", J2:J13, "是")

结果:类别为"手机"且正在促销的产品平均售价

示例17:复杂条件平均值

计算库存充足(>安全库存)且销量>100的产品平均成本:
=AVERAGEIFS(I2:I13, D2:D13, ">"&E2:E13, F2:F13, ">100")

注意:这里E2:E13需要逐行比较,实际应该为:
=AVERAGEIFS(I2:I13, D2:D13, ">="&E2:E13, F2:F13, ">100")
但Excel不支持数组条件,正确做法:
使用SUMPRODUCT或辅助列

示例18:排除特定条件计算

计算非食品类且非促销产品的平均库存:
=AVERAGEIFS(D2:D13, C2:C13, "<>食品", J2:J13, "否")

结果:类别不是食品且非促销的产品平均库存量

示例19:多条件日期范围

假设表2有月份列,计算Q1销售部业绩:
=AVERAGEIFS(业绩列, 部门列, "销售部", 日期列, ">=2024-01-01", 日期列, "<=2024-03-31")

十一、总结​

AVERAGE家族是Excel的"平均计算器"——AVERAGE是基础款,AVERAGEIF是智能款,AVERAGEIFS是专业款,满足你从简单到复杂的所有平均值计算需求!

记忆口诀

AVERAGE求平均,数值相加除个数
AVERAGEIF加条件,筛选之后再平均
AVERAGEIFS多条件,复杂分析真方便
参数顺序要记清,区域大小要一致