EP11. “统计函数速查”
🔒 登录后可标记已读- Google Sheets 最常用的 14 个统计函数,分成平均值类、计数类、极值与离散程度类三组
- 涵盖 AVERAGE、AVERAGEIF、AVERAGEIFS、COUNT、COUNTA、COUNTBLANK、COUNTIF、COUNTIFS、MAX、MEDIAN、MIN、MODE、STDEV.P、STDEV.S
- 前置知识:先看过 EP03 的公式基础,以及 EP10 的 IF 系列条件写法(AVERAGEIF/COUNTIF 这类“IF 系”函数的条件参数写法跟 IF 一致)
- 适合业绩报表、问卷统计、库存盘点这类需要汇总一堆数字的场景
重点内容
统一用下面这份业绩表举例(A2:D11):
| 员工 | 部门 | 本月业绩(RM) | 备注 |
|---|---|---|---|
| Ali | Sales | 6200 | 达标 |
| Siti | Sales | 3800 | |
| Kumar | Sales | 5100 | 达标 |
| Wei Ling | Marketing | 4700 | |
| Farah | Sales | 2900 | 待加强 |
| Hafiz | IT | 5900 | |
| Mei Mei | Marketing | 4100 | 达标 |
| Raj | Sales | 6200 | |
| Nurul | IT | 3300 | 待加强 |
| Chong | Marketing | 4900 |
平均值类:AVERAGE / AVERAGEIF / AVERAGEIFS
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| AVERAGE | =AVERAGE(value1, [value2, ...]) | 算平均值,自动忽略文字内容的单元格 | =AVERAGE(C2:C11) |
| AVERAGEIF | =AVERAGEIF(criteria_range, criterion, [average_range]) | 加一个条件,只算符合条件的平均值 | =AVERAGEIF(B2:B11,"Sales",C2:C11) |
| AVERAGEIFS | =AVERAGEIFS(average_range, criteria_range1, criterion1, ...) | 加多个条件(AND 关系),全部满足才纳入平均 | =AVERAGEIFS(C2:C11,B2:B11,"Sales",C2:C11,">=5000") |
AVERAGE 例子:=AVERAGE(C2:C11) 把全部 10 位员工的业绩加起来除以 10,结果是 RM4,710。
AVERAGEIF 例子:=AVERAGEIF(B2:B11,"Sales",C2:C11) 只算部门是 "Sales" 的业绩平均——Ali、Siti、Kumar、Farah、Raj 五人,平均是 RM4,840。
AVERAGEIFS 例子:=AVERAGEIFS(C2:C11,B2:B11,"Sales",C2:C11,">=5000") 再加一个条件,只算 Sales 部门里业绩 >=5000 的人——剩下 Ali(6200)、Kumar(5100)、Raj(6200) 三人,平均约 RM5,833。
📌 AVERAGEIFS 的参数顺序跟 AVERAGEIF 不一样——AVERAGEIFS 把要平均的范围(average_range)放在最前面,AVERAGEIF 则放在最后面,容易搞混,下笔前先确认用的是哪个函数。
计数类:COUNT / COUNTA / COUNTBLANK / COUNTIF / COUNTIFS
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| COUNT | =COUNT(value1, [value2, ...]) | 数有几个是数字的单元格,忽略文字 | =COUNT(C2:C11) |
| COUNTA | =COUNTA(value1, [value2, ...]) | 数有几个非空白的单元格,文字数字都算 | =COUNTA(D2:D11) |
| COUNTBLANK | =COUNTBLANK(value1, [value2, ...]) | 数有几个空白单元格 | =COUNTBLANK(D2:D11) |
| COUNTIF | =COUNTIF(range, criterion) | 加一个条件,数符合条件的单元格有几个 | =COUNTIF(B2:B11,"Sales") |
| COUNTIFS | =COUNTIFS(criteria_range1, criterion1, [criteria_range2, ...], ...) | 加多个条件(AND 关系),全部满足才计数 | =COUNTIFS(B2:B11,"Sales",C2:C11,">=5000") |
COUNT 例子:=COUNT(C2:C11) 业绩栏全部都是数字,结果是 10。
COUNTA 例子:=COUNTA(D2:D11) 备注栏只有部分员工写了“达标”/“待加强”,其余留空——非空白的有 Ali、Kumar、Farah、Mei Mei、Nurul 共 5 个。
COUNTBLANK 例子:=COUNTBLANK(D2:D11) 反过来数空白的备注,结果是 5——刚好跟 COUNTA 的结果加起来等于总行数 10,两个函数是一体两面。
COUNTIF 例子:=COUNTIF(B2:B11,"Sales") 数部门是 "Sales" 的有几人,结果是 5(Ali、Siti、Kumar、Farah、Raj)。
COUNTIFS 例子:=COUNTIFS(B2:B11,"Sales",C2:C11,">=5000") 再加业绩条件,Sales 部门里业绩 >=5000 的只剩 3 人(Ali、Kumar、Raj)。
极值与离散程度类:MAX / MEDIAN / MIN / MODE / STDEV.P / STDEV.S
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| MAX | =MAX(value1, [value2, ...]) | 找出范围里最大的数字 | =MAX(C2:C11) |
| MIN | =MIN(value1, [value2, ...]) | 找出范围里最小的数字 | =MIN(C2:C11) |
| MEDIAN | =MEDIAN(value1, [value2, ...]) | 找出中位数(由小到大排序后最中间的值) | =MEDIAN(C2:C11) |
| MODE | =MODE.SNGL(value1, ...) 或 =MODE.MULT(value1, ...) | 找出出现次数最多的值,SNGL 只回传一个,MULT 回传所有并列的众数 | =MODE.SNGL(C2:C11) |
| STDEV.P | =STDEV.P(value1, [value2, ...]) | 母体标准差——数据就是全部要研究的对象时使用 | =STDEV.P(C2:C11) |
| STDEV.S | =STDEV.S(value1, [value2, ...]) | 样本标准差——数据只是从更大母体里抽出来的一部分样本时使用 | =STDEV.S(C2:C11) |
MAX / MIN 例子:=MAX(C2:C11) 结果是 RM6,200(Ali 和 Raj 并列最高,函数只回传数值本身,不管是谁);=MIN(C2:C11) 结果是 RM2,900(Farah)。
MEDIAN 例子:=MEDIAN(C2:C11) 把 10 个业绩数字由小到大排序后取中间两个数的平均,结果是 RM4,800。
MODE 例子:这份业绩表里 6200 出现了两次(Ali、Raj),是唯一的众数,=MODE.SNGL(C2:C11) 回传 6200。如果改用另一组数据,比如一份团队加班次数记录 3、5、5、7、7、2(假设放在 A1:A6),=MODE.MULT(A1:A6) 会同时回传 5 和 7——遇到并列众数时,MODE.SNGL 只能挑其中一个,看不出还有另一个并列的众数。
STDEV.P / STDEV.S 例子:=STDEV.P(C2:C11) 结果约 1118.44,=STDEV.S(C2:C11) 结果约 1178.94——同一组数据,STDEV.S 算出来会比 STDEV.P 大,因为 STDEV.S 除以的是 n-1(样本自由度),STDEV.P 除以的是 n(母体全部笔数),分母变小结果自然变大。
💡 母体 vs 样本,怎么判断该用哪个:如果这 10 位员工就是你要分析的全部员工(母体),用 STDEV.P;如果这 10 位只是从全公司几百人里抽出来的一部分样本、想拿来推估全公司的离散程度,用 STDEV.S。不确定的话,STDEV.S 是比较保守(数值较大、较不会低估离散程度)的选择。
常见错误
- ❌ AVERAGEIF 和 AVERAGEIFS 的参数顺序搞混——AVERAGEIF 是
(条件范围, 条件, 要平均的范围),AVERAGEIFS 反过来把“要平均的范围”放最前面,两个函数直接照抄容易调换参数顺序导致报错或算错范围 - ❌ COUNT 用来数文字栏位,结果一直是 0——COUNT 只认数字,数文字/非空白栏位要改用 COUNTA
- ❌ 母体和样本标准差用错——数据是抽样调查却用 STDEV.P,会低估实际的离散程度;数据是母体全部却用 STDEV.S,则会没必要地放大数值
- ❌ MODE 遇到并列众数只用 MODE.SNGL,误以为只有一个众数——数据有多个并列最高频率值时,MODE.SNGL 只会回传其中一个,想确认是否有并列要改用 MODE.MULT
Sources
Blog / Website: