目录
-
- 一、计数函数
-
- [1. COUNT](#1. COUNT)
- [2. COUNTA](#2. COUNTA)
- [3. COUNTBLANK](#3. COUNTBLANK)
- [4. COUNTIF](#4. COUNTIF)
- [5. COUNTIFS](#5. COUNTIFS)
- 二、求和函数
-
- [1. SUM](#1. SUM)
- [2. SUMIF](#2. SUMIF)
- [3. SUMIFS](#3. SUMIFS)
- [4. SUMPRODUCT](#4. SUMPRODUCT)
- 三、统计函数
-
- [1. AVERAGE](#1. AVERAGE)
- [2. AVERAGEA](#2. AVERAGEA)
- [3. AVERAGEIF 函数](#3. AVERAGEIF 函数)
- [4. AVERAGEIFS 函数](#4. AVERAGEIFS 函数)
- 四、其他常用计算函数
-
- [1. MAX 与 MIN](#1. MAX 与 MIN)
- [2. RANK](#2. RANK)
- [3. MOD](#3. MOD)
- [4. ROUND](#4. ROUND)
- [5. FLOOR](#5. FLOOR)
- [6. INT](#6. INT)
- [7. RAND 与 RANDBETWEEN](#7. RAND 与 RANDBETWEEN)
- [8. STDEV](#8. STDEV)
- [9. VAR](#9. VAR)
-
- [10. LARGE](#10. LARGE)
- [11. SMALL](#11. SMALL)
- [12. FREQUENCY](#12. FREQUENCY)
一、计数函数
1. COUNT
功能说明
- 用于统计参数中数字的个数。
- 只会统计含数字的单元格,对于文本、空值、错误值等不计入。
语法
sql
=COUNT(value1, [value2], ...)
示例
如果区域 A1:A10 中有数字和文本,公式
sql
=COUNT(A1:A10)
只返回区域中包含数字的单元格数。
2. COUNTA
功能说明
- 统计区域内非空单元格的个数。
- 包括数字、文本、逻辑值、错误值等,只要单元格不为空都会计数。
语法
sql
=COUNTA(value1, [value2], ...)
示例
sql
=COUNTA(A1:A10)
会统计 A1 到 A10 内所有非空的单元格数。
3. COUNTBLANK
功能说明
- 统计指定区域内空白单元格的个数。
语法
sql
=COUNTBLANK(range)
示例
sql
=COUNTBLANK(A1:A10)
返回区域内空白单元格的数量。
4. COUNTIF
功能说明
- 根据给定条件统计区域中符合条件的单元格个数。
语法
sql
=COUNTIF(range, criteria)
示例
统计区域 B1:B20 中大于 100 的数值:
sql
=COUNTIF(B1:B20, ">100")
5. COUNTIFS
功能说明
- 用于统计多个区域中同时满足多个条件的单元格个数。
语法
sql
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
示例
统计区域 A1:A20 中等于"上海"且区域 B1:B20 中性别为"F"的单元格数:
sql
=COUNTIFS(A1:A20, "上海", B1:B20, "F")
二、求和函数
1. SUM
功能说明
- 将给定范围或参数中的所有数值求和。
语法
sql
=SUM(number1, [number2], ...)
示例
sql
=SUM(C1:C10)
将 C1 到 C10 的数值求和。
2. SUMIF
功能说明
- 对满足单个条件的单元格求和。
语法
sql
=SUMIF(range, criteria, [sum_range])
其中:
- range:判断条件的区域。
- criteria:条件(如 ">100"、"男"、"上海" 等)。
- sum_range:实际求和的区域(如果省略,则对 range 进行求和)。
示例
求区域 D1:D20 中对应区域 C1:C20 为"男"的数值之和:
sql
=SUMIF(C1:C20, "男", D1:D20)
3. SUMIFS
功能说明
- 对满足多个条件的单元格求和。
语法
sql
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
示例
统计区域 D1:D20 中,同时满足区域 B1:B20 为"广州"且区域 C1:C20 为"F"的数值之和:
sql
=SUMIFS(D1:D20, B1:B20, "广州", C1:C20, "F")
4. SUMPRODUCT
功能说明
- 将多个数组对应元素相乘后求和,适用于复杂条件的加权求和等情况。
- 非数字元素会被视作 0。
语法
sql
=SUMPRODUCT(array1, [array2], ...)
示例
假设区域 A1:A5 为销量,区域 B1:B5 为单价,则总销售额可用:
sql
=SUMPRODUCT(A1:A5, B1:B5)
三、统计函数
1. AVERAGE
功能说明
- 返回参数中所有数字的算术平均值。
- 忽略空白单元格和文本(逻辑值和错误值也会被忽略)。
语法
sql
=AVERAGE(number1, [number2], ...)
示例
sql
=AVERAGE(C1:C10)
计算 C1 到 C10 中数字的平均值。
2. AVERAGEA
功能说明
- AVERAGEA 用于计算一组数据的算术平均值,但与 AVERAGE 不同的是,
AVERAGEA
会将所有单元格都考虑进去,即使其中包含文本或逻辑值(TRUE/FALSE)。 - 在
AVERAGEA
中:- 数字按原值参与计算。
- 文本通常视为 0。
- 逻辑值 TRUE 会视为 1,FALSE 视为 0。
- 空单元格不计入计算(与 AVERAGE 类似)。
语法
sql
=AVERAGEA(value1, [value2], ...)
- value1, value2, ...:可以是数值、数组、单元格区域或常量。
示例
假设 A1:A5 中分别为:
- A1 = 10
- A2 = 20
- A3 = "文本"
- A4 = TRUE
- A5 = (空)
计算公式:
sql
=AVERAGEA(A1:A5)
计算过程:
- 数字 10 和 20:直接取值;
- 文本 "文本" 视为 0;
- TRUE 视为 1;
- 空单元格不计入分母。
所以平均值 = (10 + 20 + 0 + 1) / 4 = 31 / 4 = 7.75
3. AVERAGEIF 函数
功能说明
AVERAGEIF
用于对指定范围内满足单一条件的单元格进行平均值计算。
- 如果只需要依据一个条件筛选数据进行平均,则使用
AVERAGEIF
即可。 - 如果未指定第三个参数,则计算平均值的范围默认与条件判断的范围相同。
语法
sql
=AVERAGEIF(range, criteria, [average_range])
参数说明
- range :指定需要进行条件判断的单元格区域。例如:B2:B20。
- criteria :指定判断条件,可以是数值、表达式(如 ">50")、文本、单元格引用等。例如:">50" 或者 "男"。
- average_range (可选):指定实际用于计算平均值的单元格区域。如果省略,函数会对 range 中满足条件的单元格直接求平均;如果提供,average_range 必须与 range 的尺寸一致,函数将对 average_range 中对应于 range 满足条件的单元格计算平均值。
示例
假设有如下数据:
- B2:B20 存放某组学生的成绩
- 现在需要计算成绩大于 60 分的学生的平均成绩
公式如下:
sql
=AVERAGEIF(B2:B20, ">60")
或者,如果成绩数据在 C2:C20,而判断条件在 B2:B20(比如 B 列存放性别,C 列存放成绩),求"男"生的平均成绩,可以写为:
sql
=AVERAGEIF(B2:B20, "男", C2:C20)
4. AVERAGEIFS 函数
功能说明
AVERAGEIFS
用于在多条件下计算平均值,即只有同时满足多个条件的单元格才会被纳入平均计算中。
- 当需要针对多个条件进行筛选时,
AVERAGEIFS
提供了灵活且简洁的解决方案。
语法
sql
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
参数说明
- average_range :指定实际用于计算平均值的单元格区域。例如:C2:C20。
- criteria_range1 :第一个用于判断条件 的区域,通常与
average_range
具有相同的尺寸。例如:B2:B20。 - criteria1 :第一个判断条件,例如:"男" 或 ">60"。
- [criteria_range2, criteria2], ...:可选的后续条件区域和条件。你可以添加多个条件,每个条件区域必须与 average_range 具有相同的大小,只有同时满足所有条件的单元格才会参与平均值计算。
示例
假设有如下数据:
- B2:B20 存放学生所在城市
- C2:C20 存放学生成绩
- D2:D20 存放学生性别
若要求计算"上海"且性别为"女"的学生成绩平均值,可用如下公式:
sql
=AVERAGEIFS(C2:C20, B2:B20, "上海", D2:D20, "女")
这表示只有当学生的城市为"上海"并且性别为"女"时,对应的成绩才会被计算在内。
两者主要区别
- 条件个数
- AVERAGEIF 仅支持单一条件。
- AVERAGEIFS 支持多个条件,可同时指定多个条件区域与对应条件。
- 参数顺序
- AVERAGEIF 的语法中,条件判断区域在前,平均值区域为可选的第三参数;
- AVERAGEIFS 的第一个参数必须是用于求平均的区域,后面跟着成对的条件区域和条件。
- 应用场景
- 当只需对一列数据按单个条件求平均时,使用 AVERAGEIF 更简单;
- 当需要对数据进行多重筛选后求平均时,使用 AVERAGEIFS 更加灵活。
四、其他常用计算函数
1. MAX 与 MIN
功能说明
- MAX:返回区域或数值中的最大值。
- MIN:返回区域或数值中的最小值。
语法
sql
=MAX(number1, [number2], ...)
=MIN(number1, [number2], ...)
示例
sql
=MAX(D1:D20)
=MIN(D1:D20)
2. RANK
功能说明
- 返回某个数字在区域中的排序位置。
- 默认按降序排列(即最大值为第1名),可以通过第三个参数指定升序排列。
语法
sql
=RANK(number, ref, [order])
- number:需要排序的数字。
- ref:用于排序的数值区域。
- order:可选,0(或省略)表示降序,非0表示升序。
示例
假如 E1:E10 存放分数,求 E2 的排名(降序):
sql
=RANK(E2, E1:E10, 0)
3. MOD
功能说明
- 返回两数相除的余数。
- 返回结果的符号与除数相同。
语法
sql
=MOD(number, divisor)
示例
sql
=MOD(17, 5)
返回 2,因为 17 除以 5 的余数是 2。
4. ROUND
功能说明
- 将数字四舍五入到指定的小数位数。
语法
sql
=ROUND(number, num_digits)
- number:要四舍五入的数字。
- num_digits:要保留的小数位数,正数表示小数位,0 表示取整,负数则舍入到小数点左侧。
示例
sql
=ROUND(3.14159, 2)
返回 3.14。
5. FLOOR
功能说明
- 将数字向下舍入 到最接近的指定基数的倍数。
- 若数字已是基数的倍数,则不变化。
语法
sql
=FLOOR(number, significance)
- number:需要舍入的数字。
- significance:指定舍入的倍数。
示例
sql
=FLOOR(17, 5)
返回 15。
6. INT
功能说明
- 返回数字的整数部分,即向下舍入到最接近的整数。
- 注意:对于负数,INT 会向更小的整数取整(例如 INT(-3.2) 返回 -4)。
语法
sql
=INT(number)
示例
sql
=INT(3.9) ' 返回 3
=INT(-3.9) ' 返回 -4
7. RAND 与 RANDBETWEEN
RAND
- 功能说明 :返回大于等于 0 且小于 1 [0,1)的随机实数。
- 每次工作表计算时都会改变。
语法
sql
=RAND()
示例
sql
=RAND()
可能返回 0.4832 等随机小数。
RANDBETWEEN
- 功能说明:返回介于指定下限和上限之间的随机整数。
- 每次计算时会刷新新数值。
语法
sql
=RANDBETWEEN(bottom, top)
- bottom:随机整数的最小值。
- top:随机整数的最大值。
示例
sql
=RANDBETWEEN(1, 100)
可能返回 1 到 100 之间的任意整数。
8. STDEV
功能说明
- STDEV 系列函数用于衡量数据的离散程度,即数据点与平均值之间的偏差。
- Excel 中常用的有:
- STDEV.S(或 STDEV):根据样本数据估算标准偏差。
- STDEV.P:计算总体数据的标准偏差(假设数据集为总体)。
语法
-
样本标准偏差(STDEV.S 或 STDEV):
sql=STDEV.S(number1, [number2], ...)
-
总体标准偏差(STDEV.P):
sql=STDEV.P(number1, [number2], ...)
示例
假设数据位于 A1:A5 为:10, 20, 20, 30, 40
计算样本标准偏差:
sql
=STDEV.S(A1:A5)
计算总体标准偏差:
sql
=STDEV.P(A1:A5)
两者的计算公式略有不同,样本标准偏差的分母为 n-1,而总体标准偏差的分母为 n。
9. VAR
功能说明
- VAR 系列函数用于衡量数据的变异程度,即标准偏差的平方。
- 常用函数有:
- VAR.S(或 VAR):基于样本数据估算方差。
- VAR.P:计算总体数据的方差。
语法
-
样本方差:
sql=VAR.S(number1, [number2], ...)
-
总体方差:
sql=VAR.P(number1, [number2], ...)
示例
延续上例数据(10, 20, 20, 30, 40)
计算样本方差:
sql
=VAR.S(A1:A5)
计算总体方差:
sql
=VAR.P(A1:A5)
注意,方差值等于标准偏差的平方。
10. LARGE
功能说明
- LARGE 返回数组或区域中第 k 个最大值(即从大到小排序后第 k 个数)。
语法
sql
=LARGE(array, k)
- array:数据区域或数组。
- k:要返回第 k 大的数值。
示例
假设区域 A1:A6 的数据为:{5, 10, 15, 20, 25, 30}
要找出第二大数:
sql
=LARGE(A1:A6, 2)
返回结果为 25(即 30 为最大,25 为第二大)。
11. SMALL
功能说明
- SMALL 返回数组或区域中第 k 个最小值(即从小到大排序后第 k 个数)。
语法
sql
=SMALL(array, k)
- array:数据区域或数组。
- k:要返回第 k 小的数值。
示例
同样数据 {5, 10, 15, 20, 25, 30}
找出第二小的数:
sql
=SMALL(A1:A6, 2)
返回结果为 10(5 为最小,10 为第二小)。
12. FREQUENCY
功能说明
- FREQUENCY 函数用于统计数据在各个区间内的出现频率,返回一个垂直数组,数组元素的个数比分段区间多 1 个。
- 其中,每个元素代表数据落在相应区间内的个数,最后一个元素统计超出最高区间的数目。
语法
sql
=FREQUENCY(data_array, bins_array)
- data_array:包含要统计的数据的区域。
- bins_array:定义各区间上限的数组(或区域)。
使用注意
- FREQUENCY 是一个数组函数,需要在输入公式后按 Ctrl+Shift+Enter(在新版 Excel 中可能自动识别数组公式)。
- 返回的数组长度为分段数 + 1。
示例
假设:
- data_array 在 A1:A10 存放一组成绩数据。
- bins_array 在 C1:C3 存放三个分段上限(例如 60、80、100)。 公式:
sql
=FREQUENCY(A1:A10, C1:C3)
返回结果为一个 4 行的数组,分别表示:
- 小于 60 分的个数;
- 大于或等于 60 且小于 80 的个数;
- 大于或等于 80 且小于 100 的个数;
- 大于或等于 100 的个数。
例如,若 A1:A10 的数据为 {55, 60, 65, 70, 75, 80, 85, 90, 95, 100},则 FREQUENCY 的结果可能为:
- 第1组(<60):1
- 第2组(60~79):4
- 第3组(80~99):4
- 第4组(>=100):1