
Average函数怎么用:Excel求平均值的常见方法
在 Excel 中,求一组数的算术平均值,最常用的函数是 AVERAGE。它适合汇总成绩、工时、销售额、温度等数值数据。不过,“平均值”并不总是把选中的单元格全部相加再除以单元格个数:空白、文本、零值、错误值以及筛选隐藏的行,都会影响计算结果。
本文从基本公式讲起,逐步说明 AVERAGE 的参数规则,再介绍条件平均、加权平均和忽略错误值等常见做法。公式示例采用英文函数名和逗号分隔参数;如果你的 Excel 使用分号作为参数分隔符,请将公式中的逗号改为分号。
一、AVERAGE 的基本用法
AVERAGE 会计算参数中数值的算术平均值,基本语法如下:
=AVERAGE(number1, [number2], ...)
number1是必需参数,可以是数字、单元格引用或区域引用。number2及后续参数是可选的,可继续提供数字、引用或区域。- AVERAGE 要求至少提供一个参数;Excel 函数通常最多接受 255 个参数。
假设 B2:B6 中是 78、85、92、88 和 77,在任意空白单元格输入:
=AVERAGE(B2:B6)
结果为 84。这个结果等于 420 除以 5。也可以把不连续的单元格或区域作为多个参数:
=AVERAGE(B2:B6,D2:D6)
这里计算的是两个区域中符合 AVERAGE 处理规则的数值的平均值。若只想计算几个单独的数,也可以直接传入数字:
=AVERAGE(10,20,30)
公式结果为 20。实际工作中,通常建议引用单元格或区域,而不是把大量常量写进公式,这样数据变化后不必逐一改公式。
二、AVERAGE 如何处理空白、文本和零值
判断平均值是否正确,关键在于弄清楚哪些内容参与了计算。对常见的区域引用,例如 =AVERAGE(A1:A10),其规则可以概括如下。
| 单元格内容 | 是否参与平均 | 说明 |
|---|---|---|
| 数字 | 参与 | 作为数值相加,并计入样本数量。 |
| 零 | 参与 | 零是数值,不等于空白。 |
| 真正的空白单元格 | 不参与 | 不会计入分母。 |
| 文本 | 不参与 | 例如单元格中输入的“缺考”会被忽略。 |
| 逻辑值 TRUE 或 FALSE | 不参与 | 当它们位于引用区域中时,会被忽略。 |
| 错误值 | 通常导致公式返回错误 | 例如区域含有 #N/A,AVERAGE 通常也会返回 #N/A。 |
零值和空白的差异尤其容易造成误解。下面的区域包含 10、0 和一个空白单元格:
=AVERAGE(A1:A3)
结果是 5,因为参与计算的数值是 10 和 0,分母为 2。空白不计入分母。如果把 0 改成真正的空白,结果则为 10。若数据中的 0 代表“尚未填写”,应先明确业务规则,再选择排除零值的公式;不能仅凭平均值看起来偏低就把零都删掉。
还有一种容易混淆的情况:单元格公式返回空文本,例如 =IF(B2="","",B2)。该单元格显示为空,但内容实际是文本结果,不是真正的空白;在常见的区域引用计算中,文本仍会被 AVERAGE 忽略。若要判断它是否是真正的空白,可使用 ISBLANK,但要注意,公式返回空文本的单元格并不满足“真正空白”的判断。
直接传入的文本和逻辑值有不同规则
当文本或逻辑值作为函数参数直接输入,而不是通过区域引用提供时,处理方式不同。例如:
=AVERAGE(5,TRUE,"5")
这里 TRUE 和可识别为数字的文本“5”是直接提供的参数,都会参与计算,结果为约 3.6667。相比之下,若 TRUE 和文本“5”位于被引用的单元格中,它们通常会被忽略。因此,不要把“区域里的文本处理规则”直接套用到“公式中直接输入的参数”。
三、常见场景与公式写法
1. 对一列或一行数据求平均
若成绩位于 C2:C31:
=AVERAGE(C2:C31)
如果只计算一行中若干月份的数据,例如 D5:O5:
=AVERAGE(D5:O5)
AVERAGE 会读取区域中的数值。以后在区域内补入新数字时,公式会按更新后的内容重新计算。若数据会不断追加,建议使用 Excel 表格(选择数据后按 Ctrl+T),并使用表格列引用,减少漏选新行的可能。
2. 计算多个不连续区域的平均值
例如,只想合并两个班的成绩区域:
=AVERAGE(B2:B20,D2:D20)
这会把两个区域中的数值合并后计算平均,而不是先分别求两个班的平均再对两个平均数取平均。若两个班人数不同,这一区别很重要:直接合并原始成绩,相当于每位学生权重相同;平均两个班的平均值,则相当于每个班权重相同。
3. 按条件求平均:AVERAGEIF
如果只计算满足一个条件的记录,应使用 AVERAGEIF。例如,A2:A100 是部门名称,B2:B100 是金额,求“销售部”的平均金额:
=AVERAGEIF(A2:A100,"销售部",B2:B100)
其基本语法是:
=AVERAGEIF(range, criteria, [average_range])
range是检查条件的区域。criteria是条件,可以是数字、表达式、文本或单元格引用。average_range是实际参与平均的区域;省略时,Excel 使用range中的单元格计算。
如果条件来自单元格 D1,可以写成:
=AVERAGEIF(A2:A100,D1,B2:B100)
数值比较条件可用连接符拼接单元格。例如,求大于 E1 中数值的金额平均值:
=AVERAGEIF(B2:B100,">"&E1)
这里公式中的 & 用于把比较符和 E1 的内容组合成条件文本。若需要同时满足多个条件,例如部门为“销售部”且地区为“华东”,可使用 AVERAGEIFS:
=AVERAGEIFS(C2:C100,A2:A100,"销售部",B2:B100,"华东")
AVERAGEIFS 的第一个参数是平均区域,后面依次是条件区域和条件。条件区域与平均区域应按相同的行列结构对应,以免范围错位。AVERAGEIF 或 AVERAGEIFS 找不到符合条件的数值时,可能返回 #DIV/0!;这通常表示没有可平均的数值,不一定是公式语法错误。
4. 计算加权平均
如果不同项目的重要性不同,不能直接使用 AVERAGE。比如商品价格在 B2:B5,销量在 C2:C5,想计算按销量加权的平均价格,应使用“价格乘销量之和,再除以销量之和”:
=SUMPRODUCT(B2:B5,C2:C5)/SUM(C2:C5)
SUMPRODUCT 会按对应位置相乘并求和。公式的分母是总销量;如果总销量为 0,会出现除零错误。要处理这种情况,可使用:
=IF(SUM(C2:C5)=0,"无有效销量",SUMPRODUCT(B2:B5,C2:C5)/SUM(C2:C5))
只有在确实存在权重、且权重含义明确时才使用加权平均。不能因为数据分布不理想,就随意给某些记录加权。
5. 对筛选后的可见数据求平均
普通的 =AVERAGE(B2:B100) 通常会把筛选隐藏的行也纳入计算。若希望按筛选结果计算可见行的平均值,可使用 SUBTOTAL:
=SUBTOTAL(1,B2:B100)
功能编号 1 表示平均值;这种写法会忽略筛选掉的行,但仍可能包含手动隐藏的行。若还要排除手动隐藏的行,使用编号 101:
=SUBTOTAL(101,B2:B100)
因此,筛选后的“可见平均值”要先说清楚是否排除手动隐藏行。SUBTOTAL 在嵌套汇总中也会忽略被引用区域内的其他 SUBTOTAL 结果,避免重复汇总。
6. 排除错误值后求平均
只要平均区域含有错误值,直接使用 AVERAGE 通常就会得到错误结果。若业务规则允许忽略错误值,可以在较新版本 Excel 中用 AGGREGATE:
=AGGREGATE(1,6,B2:B100)
其中 1 表示平均值,选项 6 表示忽略错误值。该公式适用于需要明确跳过错误单元格的场景,但忽略错误并不代表错误可以不处理。最好另外统计错误记录,确认它们为何出现,以及排除后是否会造成偏差。
若只想让公式在没有可平均数据时显示提示,可用 IFERROR:
=IFERROR(AVERAGE(B2:B100),"没有可计算的数值")
这会把公式产生的任何错误都替换成提示文字,包括区域中的错误值。若你需要区分“没有数字”和“源数据包含错误”,不应一概用 IFERROR 隐藏问题,而应先检查并分类错误。
四、常见错误与排查方法
错误一:把文本数字当成数值
从网页、CSV 或其他系统导入的数据,可能看起来像数字,实际却是文本。区域引用中的数字文本通常会被 AVERAGE 忽略。例如,单元格显示“100”,但左对齐或带有文本标记时,它可能不参与计算。
可通过 ISNUMBER 检查单元格是否为数值:
=ISNUMBER(A2)
结果为 FALSE 时,应确认数据来源并进行转换。对格式规范、确实表示数值的文本,可以使用“数据”选项卡中的“分列”、乘以 1,或使用 VALUE 转换;但不要对不确定的文本直接强制转换,因为它可能包含单位、地区格式差异或无效字符。小数点和日期格式也会受系统区域设置影响。
错误二:把空白、零和缺失值混为一谈
AVERAGE 忽略空白,但会计入零。如果 0 表示真实测量结果,就应该保留;如果 0 是系统用来标记缺失数据的占位值,则应在计算前按规则排除。两种数据含义不同,公式写法也应不同。
例如,若只对大于 0 的数值求平均,可写:
=AVERAGEIF(B2:B100,">0")
但这会同时排除真实的零值和负数。若负数是有效数据,或零值有实际意义,这个公式就不合适。先确认数据定义,再制定筛选条件。
错误三:区域不一致或引用偏移
复制公式时,引用可能自动变化。例如把 =AVERAGE(B2:B10) 向右填充后,公式可能变成 =AVERAGE(C2:C10);这有时是预期行为,有时会误算。需要固定引用时,可使用绝对引用:
=AVERAGE($B$2:$B$10)
AVERAGEIF 中的条件区域和平均区域也应逐行对应。若一边从第 2 行开始、另一边从第 3 行开始,条件可能与错误的记录配对。检查公式时,应同时核对起始行、结束行和列。
错误四:看见 #DIV/0! 就只用 IFERROR
#DIV/0! 常见原因是没有可参与计算的数值:区域为空、条件没有匹配记录,或匹配记录中的平均值区域全是文本等。处理前先确认是否真的有符合条件的数字。如果业务确实允许“无结果”状态,可以显示说明文字;若错误表明数据缺失,则应保留可追查的信息。
错误五:把各组平均值简单再平均
不同组的记录数不同时,直接对各组平均值取平均,通常不等于全部原始数据的平均值。例如一组有 2 人、平均分 90,另一组有 18 人、平均分 70。两个组平均值的平均是 80;全体 20 人的平均则是 72。要回答“每个人的平均分”,应对原始数据合并求平均;只有在“每个组权重相同”是明确业务要求时,才对组平均值再取平均。
五、日期、百分比和精度方面的边界
Excel 日期本质上以序列数存储,因此日期区域使用 AVERAGE 时,计算的是日期序列号的平均值。结果通常可以设置为日期格式显示,但业务解释要谨慎:平均日期是序列值的算术平均,不一定等同于日历意义上更合适的“中间日期”。跨月份或跨年份时,若要找中位日期、最常出现的日期或按工作日计算的日期,应使用相应方法,而不是把所有日期问题都交给 AVERAGE。
百分比同样是数值,只是显示格式不同。例如 50% 和 100% 的平均值为 75%。若单元格显示为百分比,结果单元格也应设置为百分比格式,否则可能看到小数 0.75,但数值本身并没有算错。
Excel 使用浮点数进行数值计算,某些小数不能以二进制形式精确表示。结果可能显示许多小数位,或在后续计算中出现极微小的差异。显示位数可通过单元格格式控制;若后续业务确实要求先四舍五入再计算,应明确使用 ROUND,不要只改变显示格式并误以为底层数值已经被舍入。例如:
=ROUND(AVERAGE(B2:B10),2)
这会将平均值舍入到 2 位小数。它与“先把每条原始数据舍入到 2 位,再求平均”不是同一计算步骤;两者可能得到不同结果,应按业务规则选择。
六、效率与维护建议
- 区域范围尽量与实际数据一致。整列引用虽然方便,但在复杂工作簿中可能增加计算负担,也更容易把表头、说明或其他内容纳入公式。
- 将持续增长的数据转换为 Excel 表格,并使用表格列名引用,可让新增记录自动纳入公式。
- 把“缺失”“不适用”“未测量”等状态用明确字段记录,不要混用空白、0、文本数字和错误值。
- 给公式配上可核验的样本:检查数据条数、数值个数、最小值和最大值,确认平均值是否符合预期。
- 遇到条件平均结果异常时,先单独检查条件匹配数量,再检查匹配记录中有多少是真正数值。
例如,可以用 COUNT 查看区域内有多少个数值,用 COUNTIF 检查条件匹配数量:
=COUNT(B2:B100)
=COUNTIF(A2:A100,"销售部")
注意,条件匹配记录数不一定等于可参与平均的数值个数:匹配行的平均区域可能为空或包含文本。因此,排查时最好同时核对条件范围、平均范围和实际数值个数。
七、使用安全与数据质量边界
AVERAGE 是统计计算函数,不是数据校验、权限控制或安全判断工具。公式算出一个平均值,并不能证明输入数据真实、完整或经过授权。若平均值用于奖金、绩效、质量判定或其他重要决策,应保留数据来源、缺失值处理规则、排除条件和公式版本,必要时对结果进行独立复核。
不要把“忽略错误值”“排除零值”或“只算正数”当成通用的安全处理。它们会改变参与计算的数据集合,可能掩盖异常或系统性缺失。更稳妥的做法是先验证输入数据,再明确哪些记录应纳入,并把被排除的记录数量和原因留存下来。
如果工作簿包含外部来源的数据,应谨慎打开带有宏或外部链接的文件,并从可信来源导入数据。AVERAGE 本身不会执行宏,也不会验证来源可信度;公式中的安全风险与文件、宏、链接或导入流程有关,而不是由求平均函数提供防护。
总结
对普通数值区域求算术平均,使用 =AVERAGE(区域) 即可。使用前要确认零值是否有效、文本数字是否已转换、错误值是否需要处理,以及筛选隐藏行是否应参与计算。一个条件用 AVERAGEIF,多个条件用 AVERAGEIFS;需要按权重计算时用加权平均公式;筛选后只算可见行时,考虑 SUBTOTAL。把数据含义和计算规则说清楚,通常比增加复杂公式更能避免平均值误用。









