数学函数
数学函数适合做求和、平均、排序、取整、三角计算和随机抽取。
使用场景
- 自动统计总分、均分、加权分和排名
- 计算最大值、最小值、条件汇总结果
- 控制保留几位小数、向上取整或向下取整
- 随机抽题、随机分组或生成随机数
快速查找
- 基础运算:
SUM、PRODUCT、ABS、POWER、SQRT、LOG、MOD - 统计与排名:
AVERAGE、COUNT、COUNTIF、MAX、MIN、LARGE、SMALL、SUMPRODUCT - 取整与舍入:
ROUND、INT、CEILING、FLOOR、FIXED - 条件汇总:
SUMIF、SUMIFS - 三角与随机:
RADIANS、SIN、COS、TAN、COT、RAND
基础运算
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
ABS | ABS(number) | 取绝对值 | ABS(-12) |
SUM | SUM(number1, number2, ...) | 求和 | SUM(语文, 数学, 英语) |
PRODUCT | PRODUCT(number1, number2, ...) | 连乘 | PRODUCT(单价, 数量) |
POWER | POWER(number, power) | 幂运算 | POWER(身高 / 100, 2) |
SQRT | SQRT(number) | 开平方 | SQRT(81) |
LOG | LOG(number, [base]) | 求对数 | LOG(100, 10) |
MOD | MOD(number, divisor) | 取余数 | MOD(23, 2) |
统计与排名
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
AVERAGE | AVERAGE(number1, number2, ...) | 求平均值 | AVERAGE(语文, 数学, 英语) |
COUNT | COUNT(value1, value2, ...) | 统计参数个数 | COUNT("张三", "李四", "王五") |
COUNTIF | COUNTIF(values, criteria) | 统计满足条件的个数 | COUNTIF([1, 2, 3, 4], ">2") |
MAX | MAX(number1, number2, ...) | 取最大值 | MAX(语文, 数学, 英语) |
MIN | MIN(number1, number2, ...) | 取最小值 | MIN(语文, 数学, 英语) |
LARGE | LARGE(array, k) | 取第 k 大值 | LARGE([89, 98, 76], 1) |
SMALL | SMALL(array, k) | 取第 k 小值 | SMALL([89, 98, 76], 1) |
SUMPRODUCT | SUMPRODUCT(array1, [array2]) | 计算加权和或对应项乘积之和 | SUMPRODUCT([1, 2, 3], [0.1, 0.2, 0.3]) |
取整与舍入
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
ROUND | ROUND(number, num_digits) | 按指定位数四舍五入 | ROUND(88 / 3, 2) |
INT | INT(number) | 向下取整到整数 | INT(3.9) |
CEILING | CEILING(number, significance) | 向上舍入到指定倍数 | CEILING(10, 3) |
FLOOR | FLOOR(number, significance) | 向下舍入到指定倍数 | FLOOR(10, 3) |
FIXED | FIXED(number, [decimals]) | 按指定小数位格式化为文本 | FIXED(23.156, 2) |
tip
ROUND 返回数字,适合继续参与运算;FIXED 返回文本,更适合直接展示。
条件汇总
SUMIF
SUMIF(range, criteria, [sum_range])
按一个条件汇总数据。常见写法如下:
- 条件写数字:
20 - 条件写表达式:
">=60"、"!=0" - 条件写文本:
"苹果"
如果比较条件里带运算符,记得放在引号里。
示例:
SUMIF(成绩列表, ">=60")
SUMIF(产品类型, "水果", 数量列表)
SUMIFS
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
按多个条件汇总数据,适合“同时满足多个条件才计入结果”的场景。
示例:
SUMIFS(得分列表, 班级列表, "一班", 科目列表, "数学")
warning
SUMIF 和 SUMIFS 里,条件范围和求和范围要一一对应。条件写法没问题,但范围选错时,结果也会不对。
三角与随机
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
RADIANS | RADIANS(angle) | 把角度转成弧度 | RADIANS(180) |
SIN | SIN(radians) | 求正弦值 | SIN(RADIANS(30)) |
COS | COS(radians) | 求余弦值 | COS(RADIANS(60)) |
TAN | TAN(radians) | 求正切值 | TAN(RADIANS(45)) |
COT | COT(radians) | 求余切值 | COT(RADIANS(45)) |
RAND | RAND() | 生成 0 到 1 之间的随机 数 | RAND() |
三角函数需要传入弧度值。你如果手上是角度,先用 RADIANS 转一下。
常见组合示例
| 要做什么 | 推荐公式 |
|---|---|
| 计算 BMI | 体重 / POWER(身高 / 100, 2) |
| 计算总分 | SUM(单选1得分, 单选2得分, 填空题得分) |
| 计算平均分 | AVERAGE(语文, 数学, 英语) |
| 计算加权分 | SUMPRODUCT([维度1, 维度2, 维度3], [0.4, 0.3, 0.3]) |
| 在 20 到 30 之间随机抽一题 | INT(RAND() * (30 - 20) + 20) |
常见问题
ROUND 和 FIXED 有什么区别?
ROUND 返回的是数字,后面还能继续参与加减乘除。FIXED 返回的是文本,更适合直接显示给用户看。
CEILING 和 FLOOR 怎么记?
CEILING 往上靠,FLOOR 往下靠。你可以把它理解成一个向上找最近倍数,一个向下找最近倍数。
为什么 RAND 每次看结果都不一样?
因为 RAND() 本来就是随机函数,每次重新计算都可能变化。如果你要固定一个结果,就不要把随机数放在会频繁重算的位置。
SUMIF 和 SUMIFS 里的条件为什么要加引号?
像 ">=60"、"!=0" 这种条件本质上是文本形式的判断规则,不加引号时,公式引擎就没法把它当成完整条件来解析。