=AVERAGE(B2:B7) 返回 B2:B7 中数字的平均值:先把它们相加,再除以数字的个数。在空单元格中输入这个公式,或者选择“开始 > 自动求和 > 平均值”,让 Excel 帮你写好。
| A | B | |
|---|---|---|
| 1 | Student | Score |
| 2 | Ana | 78 |
| 3 | Ben | 92 |
| 4 | Chen | 65 |
| 5 | Dina | 88 |
| 6 | Eli | 71 |
| 7 | Fay | 84 |
| 8 | Average | 79.66666667 |
六个分数加起来是 478,478 除以 6 约等于 79.67。把 Chen 的分数改成 95,平均值会升到 84.67。要显示更少的小数位,使用“开始 > 减少小数位数”,或者用 =ROUND(AVERAGE(B2:B7),1) 对结果本身四舍五入(ROUND 讲解了两者的区别)。
AVERAGE 语法
=AVERAGE(number1, [number2], ...)
和 SUM 一样,它接受区域、单元格和数字,用逗号分隔:=AVERAGE(B2:B7,D2:D7) 对两列一起求平均值,=AVERAGE(B2:D2) 对一行求平均值。区域中的文本、TRUE/FALSE 和空单元格都会被跳过。
空白单元格与 0
大多数错误的平均值都出在这里。AVERAGE 会跳过空单元格,但 0 是数字,会被计入。下面两列除了 Ben 之外完全相同:在 B 列中他的单元格是空的,在 C 列中是 0。
| A | B | C | |
|---|---|---|---|
| 1 | Student | Blank | Zero |
| 2 | Ana | 80 | 80 |
| 3 | Ben | 0 | |
| 4 | Chen | 70 | 70 |
| 5 | Dina | 90 | 90 |
| 6 | Average | 80 | 60 |
| 7 | Numbers counted | 3 | 4 |
B 列得到 80(240 除以 3),C 列得到 60(240 除以 4)。两个都没错;你要决定缺失的值是表示“没参加”还是“得了 0 分”。返回 "" 来显示为空的公式,会像空白单元格一样被跳过。
去掉 0 求平均值
当 0 表示“没有数据”、不应拉低结果时,用 AVERAGEIF 加上条件 "<>0"(不等于 0):
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Day | Sales | Ignoring zeros | Plain average | |
| 2 | Mon | 420 | 440 | 293.3333333 | |
| 3 | Tue | 0 | |||
| 4 | Wed | 380 | |||
| 5 | Thu | 0 | |||
| 6 | Fri | 510 | |||
| 7 | Sat | 450 |
D2 得到 440,即有销售的四天的平均值。E2 中的普通平均值约为 293.33,因为它除以了六天。"<>0" 同样会排除空单元格,因为 AVERAGEIF 从不计入它们。更多条件见 AVERAGEIF 页面。
前 3 个最大值的平均值
LARGE 返回第 k 大的值。给它传入数组 {1,2,3},它会一次返回最大的三个值,再由 AVERAGE 求平均:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Round | Points | Top 3 average | Bottom 3 average | |
| 2 | 1 | 64 | 85.33333333 | 64.66666667 | |
| 3 | 2 | 81 | |||
| 4 | 3 | 77 | |||
| 5 | 4 | 90 | |||
| 6 | 5 | 58 | |||
| 7 | 6 | 85 | |||
| 8 | 7 | 72 |
前三名是 90、85 和 81,所以 D2 得到 85.33(四舍五入后)。最后三名是 58、64 和 72,得到 64.67。在 Excel 2021 和 Microsoft 365 中,=AVERAGE(LARGE(B2:B8,SEQUENCE(5))) 不用手动输入列表就能求前 5 名的平均值。
AVERAGEA:文本应当按 0 计算时
AVERAGEA 把文本和 FALSE 按 0 计算,把 TRUE 按 1 计算。B2:B4 中是分数 80、70 和单词 "absent" 时:
=AVERAGE(B2:B4) returns 75 (80 + 70, divided by 2)
=AVERAGEA(B2:B4) returns 50 (80 + 70 + 0, divided by 3)
只有当文本条目确实表示 0 时,才使用 AVERAGEA。两个函数都会跳过空单元格。
练习:去掉 0 求平均值
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Day | Visits | Average (no zeros) | ||
| 2 | Mon | 120 | |||
| 3 | Tue | 0 | |||
| 4 | Wed | 135 | |||
| 5 | Thu | 98 | |||
| 6 | Fri | 0 | |||
| 7 | Sat | 160 | |||
| 8 | Sun | 142 |
轮到你了: 在 E2 中求 B2:B8 中访问量的平均值,排除访问量为 0 的日子。
平均值会误导人时:用 MEDIAN
一个极端值会让平均值变化很大。MEDIAN 返回的是中间的值,而这通常才是“典型”值的含义。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Employee | Salary | Average | Median | |
| 2 | Ana | $42,000 | $78,800 | $47,000 | |
| 3 | Ben | $45,000 | |||
| 4 | Chen | $47,000 | |||
| 5 | Dina | $50,000 | |||
| 6 | Owner | $210,000 |
平均工资是 47,000。当少数几个值和其余值相差很远时,报告中位数,或者两者都报告。要让某些值比其他值占更大的权重,比如一场按双倍计分的考试,请看加权平均值。
常见问题
Excel 中求平均值的公式是什么?
=AVERAGE(B2:B7)。它把区域中的数字相加,再除以数字的个数。空单元格和文本既不计入总和,也不计入个数。
Excel 的 AVERAGE 会计算空白单元格吗?
不会。空单元格会被跳过,所以有一个空单元格时,=AVERAGE(B2:B5) 除以 3。值为 0 的单元格会被计入,所以它会拉低平均值。
Excel 中 AVERAGE 和 MEDIAN 有什么区别?
=AVERAGE(B2:B6) 把值相加后除以个数;=MEDIAN(B2:B6) 返回排序后位于中间的值。一个极端值会改变平均值,但不会改变中位数:对于 42000、45000、47000、50000 和 210000,平均值是 78800,中位数是 47000。
如何在 Excel 中求前 3 个最大值的平均值?
=AVERAGE(LARGE(B2:B8,{1,2,3})) 求三个最大值的平均值。求最小的 3 个,就把 LARGE 换成 SMALL。在 Excel 2021 或 Microsoft 365 中求前 5 名:=AVERAGE(LARGE(B2:B8,SEQUENCE(5)))。
为什么 AVERAGE 返回 #DIV/0!?
区域中根本没有数字:要么是空的,要么所有值都是文本,比如以文本形式存储的数字。这时 AVERAGE 就会除以 0。