自在学

我们与你共同进步

  • 分类课程
  • 文章
  • 工作台
  • 订阅

  • 关于我们
  • 隐私政策
  • 使用条款

探索

  • 分类课程
  • 文章
  • 工作台
  • 订阅

网站信息

  • 关于我们
  • 隐私政策
  • 使用条款

加入社区

自在学学习社区微信二维码

微信扫码,交流学习

株洲市自在学教育科技有限公司© 2025 - 2026 版权所有

© 2025 - 2026 株洲市自在学教育科技有限公司 版权所有

湘公网安备43020302000292号|湘ICP备2025148919号-1
分类课程工作台文章订阅
分类课程工作台文章价格

Excel入门

  1. 01认识 Excel
  2. 02Excel 的基本操作
  3. 03Excel 高效办公
  4. 04表格的样式与编辑
  5. 05数据的处理
  6. 06公式介绍
  7. 07基础函数
  8. 08统计函数
  9. 09逻辑函数
  10. 10日期与时间函数
  11. 11文本函数
  12. 12查找函数与 Subtotal 函数
  13. 13超级表
  14. 14图表的使用
  15. 15数据透视表
  16. 16打印和保护
正在加载课程章节内容
课程通用技能Excel入门基础函数

基础函数

0:00/--:--

公式的输入方式和单元格引用规则,解决的是“怎么写公式”的问题。但光会写公式还远远不够——实际工作中,大量的计算需求不是简单的加减乘除能搞定的。要给 500 行数据自动编上序号,手动从 1 敲到 500 不现实;随机把 40 个人分成 8 组,靠抽签太慢;一列销售额里找出最高和最低的那笔,逐行比对容易看花眼。这些场景都需要用到函数。函数是 Excel 预先定义好的计算工具,输入参数就能直接拿到结果,不需要自己去构造计算逻辑。这一章先从八个最基础的函数开始,它们各自的功能都不复杂,但组合起来能解决很多实际问题。


ROW 与 COLUMN——定位行列位置

ROW 函数返回指定单元格所在的行号,COLUMN 函数返回所在的列号。看上去功能非常简单,但在自动编号、动态计算偏移量等场景下用处不小。

ROW 函数

语法:

text
 
=ROW(单元格引用)
 

如果不填参数,ROW() 返回公式本身所在的行号。填了参数,就返回参数对应的行号。

在 A1 单元格输入 =ROW(),结果是 1;在 A5 单元格输入 =ROW(),结果是 5;在任意单元格输入 =ROW(B10),结果都是 10,因为 B10 在第 10 行。

COLUMN 函数

语法:

text
 
=COLUMN(单元格引用)
 

逻辑和 ROW 完全一样,只是方向从行变成了列。在 C3 单元格输入 =COLUMN(),结果是 3,因为 C 是第 3 列。在任意单元格输入 =COLUMN(F1),结果是 6。

用 ROW 自动生成序号

最常见的用法是自动编序号。一份员工花名册从 A2 开始录入数据(A1 是表头“序号”),需要在 A 列自动生成 1、2、3……的编号。

在 A2 输入:

text
 
=ROW()-1
 

因为 A2 在第 2 行,ROW() 返回 2,减去 1 就是 1。把这个公式往下拖填到 A201,每行的序号自动递增:A3 的 ROW() 返回 3 减 1 等于 2,A4 的 ROW() 返回 4 减 1 等于 3,以此类推。

这种方式比手动输入 1、2、3 再下拉填充有一个关键优势:如果中间删除了某一行数据,序号会自动重新计算,不会出现断号。手动输入的序号删掉一行后会直接从 3 跳到 5,而 ROW()-1 会自动补上缺口。

ROW函数生成序号效果,A列显示1到10的自动序号

点击下载模板:ROW函数自动序号-练习模板.xlsx

如果表头不在第 1 行——比如数据从第 5 行开始,表头在第 4 行——公式要改成 =ROW()-4,让第 5 行的序号从 1 开始。减去的数字就是表头所在的行号。

用 ROW 和 COLUMN 构造动态偏移

在制作九九乘法表时,ROW 和 COLUMN 可以配合使用。在 B2 到 J10 的区域制作一张乘法表:A 列(A2:A10)填上 1 到 9,第 1 行(B1:J1)也填上 1 到 9 作为行列标题。

在 B2 输入:

text
 
=(ROW()-1)*(COLUMN()-1)
 

ROW()-1 拿到的是当前行对应的乘数(第 2 行减 1 等于 1),COLUMN()-1 拿到的是当前列对应的乘数(B 列是第 2 列减 1 等于 1),两个乘起来就是 1×1=1。把这个公式向右和向下填充到 J10,整张九九乘法表自动生成,不需要手动输入 81 个结果。

函数返回内容典型用途
ROW()当前单元格的行号自动编序号、计算行偏移
ROW(引用)指定单元格的行号在其他位置获取目标行号
COLUMN()当前单元格的列号构造乘法表、动态列偏移
COLUMN(引用)指定单元格的列号在其他位置获取目标列号

RAND 与 RANDBETWEEN——生成随机数

需要随机分配任务、随机抽取样本、随机生成测试数据时,靠人脑“想一个随机数”既慢又不够随机。RAND 和 RANDBETWEEN 是 Excel 提供的两个随机数函数,区别在于生成的数值范围不同。

RAND 函数

语法:

text
 
=RAND()
 

不需要任何参数。每次调用返回一个大于等于 0、小于 1 的随机小数,类似 0.371928、0.854216 这样的值。每次按 Enter、F9 或者编辑工作表中任意单元格后,RAND 的结果都会重新计算,产生一个新的随机数。

RANDBETWEEN 函数

语法:

text
 
=RANDBETWEEN(最小值, 最大值)
 

返回指定范围内的一个随机整数,包含两端的边界值。=RANDBETWEEN(1,10) 可能返回 1 到 10 中的任何一个整数。

用 RANDBETWEEN 随机分组

一份培训签到表有 40 名参训人员(B2:B41),需要随机分成 8 组,每组 5 人。

在 C1 输入表头“组号”,在 C2 输入公式 =RANDBETWEEN(1,8),然后向下填充到 C41。每个人旁边出现一个 1 到 8 之间的随机数字,代表被分配到了哪一组。

分组结果出来后,按 C 列排序,同一组的人就排在了一起。但此时有一个问题:纯随机分配不保证每组恰好 5 人,可能某组 7 人、某组 3 人。

如果需要严格的每组 5 人,可以换一种思路:在 C 列用 RAND() 生成随机小数,然后按 C 列排序打乱原始顺序,排序后前 5 人分到第 1 组、第 6 到 10 人分到第 2 组,以此类推。这样每组人数一定相等。

RANDBETWEEN函数生成1到8的随机组号效果

点击下载模板:RANDBETWEEN随机分组-练习模板.xlsx

RAND 和 RANDBETWEEN 的结果是“易变的”——任何一次编辑操作(哪怕是修改一个不相关的单元格)都会触发它们重新计算,产生新的随机数。如果需要固定随机结果,必须在生成后立刻选中随机数所在的区域,Ctrl+C 复制,然后在原位“选择性粘贴”→“数值”,把公式替换成固定的数字。否则一不小心碰了键盘,分组结果就全变了。

用 RAND 随机排序打乱顺序

课堂上需要随机决定 30 名学生的发言顺序。学生名单在 A 列(A2:A31),在 B 列输入 =RAND(),向下填充到 B31。每个学生旁边出现一个随机小数。按 B 列升序排列后,学生名单的顺序完全随机化了。第一个发言的就是排在最上面的人,以此类推。

这个方法比 RANDBETWEEN 更适合“打乱顺序”的场景,因为 RAND 生成的小数几乎不可能重复(重复概率极低),排序后不会出现两个人并列的情况。

RAND 与 RANDBETWEEN 的区别

对比项RANDRANDBETWEEN
参数无参数需要指定最小值和最大值
返回值类型小数(0 到 1 之间)整数
结果是否可能重复极低概率重复范围小时重复概率较高
典型场景打乱排序、生成模拟数据随机分组、随机抽奖、生成测试分数
是否自动刷新是,每次编辑都重新计算是,每次编辑都重新计算

MOD——求余数

MOD 函数用于计算两个数相除后的余数。日常工作中,隔行标色、判断奇偶、按固定周期轮换值班——这些逻辑的底层都是“除法取余”。

语法:

text
 
=MOD(被除数, 除数)
 

=MOD(10,3) 的结果是 1,因为 10÷3=3 余 1。=MOD(12,4) 的结果是 0,因为 12 能被 4 整除,没有余数。

用 MOD 判断奇偶行

一份表格有 200 行数据,需要标记出所有偶数行(用于后续的隔行底色设置或隔行提取数据)。在辅助列输入:

text
 
=MOD(ROW(),2)
 

ROW() 返回行号,除以 2 取余。奇数行的结果是 1,偶数行的结果是 0。有了这个标记列,用筛选功能筛选出所有值为 0 的行,就是全部偶数行。

用 MOD 实现周期轮值

公司有 3 个值班组(A 组、B 组、C 组),每天轮换一组。给定一列日期序列(比如 1 月 1 日到 1 月 31 日),需要在旁边自动标注每天哪个组值班。

假设 A 列是日期(A2:A32),在 B2 输入:

text
 
=MOD(ROW()-2,3)+1
 

ROW()-2 让第一行数据从 0 开始计数。除以 3 取余的结果在 0、1、2 之间循环。加 1 后变成 1、2、3 的循环。向下填充后,B 列的值依次是 1、2、3、1、2、3……,对应 A 组、B 组、C 组的轮值顺序。

MOD函数实现三组周期轮值效果,B列显示1到3循环的组号

点击下载模板:MOD周期轮值-练习模板.xlsx

如果需要直接显示组名而不是数字,可以配合后面会学到的 IF 函数来实现,或者用一张对照表手动匹配。

用 MOD 判断能否整除

仓库发货时,每箱固定装 12 件产品。一批订单中,有的要 36 件、有的要 50 件、有的要 72 件,需要快速判断哪些订单的数量能刚好装满整箱、哪些会有散件。

假设 B 列是订单数量,在 C 列输入:

text
 
=MOD(B2,12)
 

结果为 0 的订单数量恰好是 12 的倍数,可以整箱发货。结果不为 0 的订单,余数就是散件数量——比如 50 件的余数是 2,意味着装满 4 箱后还剩 2 件需要单独处理。

订单数量MOD(数量,12)含义
360恰好 3 整箱
5024 整箱 + 2 件散件
720恰好 6 整箱
10048 整箱 + 4 件散件
2512 整箱 + 1 件散件

MOD 的除数不能为 0,否则会返回 #DIV/0! 错误。在实际使用中,如果除数来自其他单元格的引用,要确保那个单元格不是空的也不是 0。


REPT——重复文本

REPT 函数把一段文本重复指定的次数。听起来是个不起眼的小功能,但在制作简易图表、生成填充字符、构造评分可视化等场景下非常实用。

语法:

text
 
=REPT(要重复的文本, 重复次数)
 

=REPT("★",3) 的结果是 ★★★。=REPT("ab",4) 的结果是 abababab。重复次数为 0 时返回空文本,负数会报错。

用 REPT 制作单元格内的条形图

一份“各部门月度加班时长”表,B 列是加班小时数(范围从 5 到 45),想在 C 列用字符条直观展示各部门加班时长的对比,不需要插入正式的图表。

在 C2 输入:

text
 
=REPT("▌",B2/5)
 

B2 的值除以 5 作为重复次数——加班 25 小时的部门显示 5 个“▌”字符,加班 45 小时的显示 9 个。效果类似一个简易的条形图,直接嵌在单元格里:

部门加班时长(小时)可视化
技术部45▌▌▌▌▌▌▌▌▌
市场部30▌▌▌▌▌▌
财务部15▌▌▌
人事部10▌▌
行政部5▌

这种做法的好处是不需要额外的图表空间,数据和可视化在同一行内,打印出来也能保留效果。

REPT函数生成进度条效果,C列显示不同长度的色块条

点击下载模板:REPT进度条-练习模板.xlsx

用 REPT 生成评分星级

一份“产品评分表”,B 列是评分(1 到 5 的整数),需要在 C 列用星号直观展示评分等级。

在 C2 输入:

text
 
=REPT("★",B2)
 

评分为 3 的产品显示 ★★★,评分为 5 的显示 ★★★★★。比单纯的数字更直观。

如果还想显示“空星”来表达满分是 5 星(类似 ★★★☆☆ 的效果),可以把公式改成:

text
 
=REPT("★",B2) & REPT("☆",5-B2)
 

前半部分生成实心星,后半部分用 5 减去评分得到空星的数量。评分 3 的结果就是 ★★★☆☆,评分 5 的结果是 ★★★★★,视觉上非常清晰。

用 REPT 生成固定长度的编码前缀

财务系统要求凭证编号统一为 6 位数字,不足的前面补零——编号 42 要显示为 000042,编号 7 要显示为 000007。

假设 A 列是原始编号,在 B 列输入:

text
 
=REPT("0",6-LEN(A2)) & A2
 

LEN(A2) 计算原始编号的字符长度,6 减去这个长度就是需要补的零的个数。REPT("0",需要补的个数) 生成对应数量的零,& 把零和原始编号拼接起来。编号 42 的长度是 2,需要补 4 个零,结果就是 000042。

REPT 的重复次数如果是小数,Excel 会自动截断取整数部分。=REPT("A",3.7) 的结果和 =REPT("A",3) 一样,都是 AAA。在用除法计算重复次数时要注意这一点,可能导致条形图长度不够精确。


MAX 与 MIN——取最值

MAX 返回一组数值中的最大值,MIN 返回最小值。这是两个使用频率极高的函数,适用于找最高成绩、最低库存、最大订单金额、最早日期等各种场景。

MAX 函数

语法:

text
 
=MAX(数值1, 数值2, ...)
 

参数可以是单个数值、单元格引用,也可以是一个区域。=MAX(85,92,78,96,88) 的结果是 96。=MAX(B2:B100) 会在 B2 到 B100 的范围内找出最大的那个值。

MIN 函数

语法:

text
 
=MIN(数值1, 数值2, ...)
 

用法和 MAX 完全对称。=MIN(85,92,78,96,88) 的结果是 78。=MIN(B2:B100) 返回该区域中的最小值。

用 MAX 和 MIN 分析销售数据

一份“全年月度销售额”表,B 列是 1 月到 12 月的销售金额(B2:B13)。在汇总区域做以下计算:

text
 
最高月销售额:=MAX(B2:B13)
最低月销售额:=MIN(B2:B13)
最高与最低的差距:=MAX(B2:B13)-MIN(B2:B13)
 

假设 12 个月的销售额在 18 万到 52 万之间波动,MAX 返回 52 万,MIN 返回 18 万,差距是 34 万。这三个数字直接反映了全年销售的波动幅度——差距越大说明业绩越不稳定,需要进一步分析低谷月份的原因。

MAX和MIN函数在门店销售表中找出最高和最低销售额

点击下载模板:MAX与MIN取最值-练习模板.xlsx

用 MAX 和 MIN 做成绩统计

一份期末考试成绩表,C 列是数学成绩(C2:C61,共 60 名学生)。

在汇总区域输入 =MAX(C2:C61),得到全班最高分。

输入 =MIN(C2:C61),得到全班最低分。

输入 =MAX(C2:C61)-MIN(C2:C61),得到分差(极差),反映成绩的离散程度。

如果最高分 98、最低分 23,极差是 75 分,说明班级内部成绩差距非常大。如果最高分 95、最低分 72,极差只有 23 分,说明整体水平比较均匀。

多区域取最值

MAX 和 MIN 的参数可以包含多个不连续的区域。一份表格中,D 列是语文成绩、E 列是数学成绩、F 列是英语成绩,需要找出某个学生三科中的最高分和最低分:

text
 
三科最高分:=MAX(D2,E2,F2)
三科最低分:=MIN(D2,E2,F2)
 

也可以一次性在所有学生的所有科目中找出全校最高分:

text
 
=MAX(D2:F61)
 

这个公式会在 D2 到 F61 的整个矩形区域中搜索,不管是哪一科、哪个学生,只要是最大的那个数值就返回。

用 MAX 设置下限,用 MIN 设置上限

有一种不太直观但非常实用的用法:用 MAX 来保证结果不低于某个值,用 MIN 来保证结果不超过某个值。

员工月度绩效奖金的计算规则是“销售额的 5%”,但公司规定奖金最低 500 元、最高 8000 元。如果直接用 =B2*5% 计算,销售额只有 3000 的员工奖金是 150 元(低于下限),销售额 20 万的员工奖金是 10000 元(超过上限)。

用 MAX 和 MIN 做双向限制:

text
 
=MIN(MAX(B2*5%,500),8000)
 

内层 MAX(B2*5%,500) 先处理下限——如果 B2*5% 小于 500,就取 500;外层 MIN(...,8000) 再处理上限——如果结果大于 8000,就取 8000。两层嵌套后,奖金永远落在 500 到 8000 的区间内。

销售额B2*5%MAX(B2*5%,500)MIN(...,8000)最终奖金
3,000150500500500
15,000750750750750
80,0004,0004,0004,0004,000
200,00010,00010,0008,0008,000

MAX 和 MIN 会自动忽略区域中的文本和空白单元格,只对数值进行比较。如果 B2:B100 中间有几个空格子或者有人误输入了文字,不影响函数的计算结果。但如果整个区域全是文本或全是空白,MAX 返回 0,MIN 也返回 0——不会报错,但结果可能不是预期的。

MAX 与 MIN 对比

对比项MAXMIN
功能返回最大值返回最小值
参数数量最多 255 个参数最多 255 个参数
对文本的处理忽略忽略
对空单元格的处理忽略忽略
对逻辑值的处理直接输入 TRUE 计为 1、FALSE 计为 0;单元格引用中的逻辑值被忽略同 MAX
典型场景最高分、最大金额、封底保底值最低分、最小库存、封顶限制值

这八个基础函数各自功能简单,但组合使用时能力会成倍增长。ROW 配合 MOD 可以实现周期编号,REPT 配合除法能做出单元格内的迷你图表,MAX 和 MIN 嵌套能做数值的上下限控制,RANDBETWEEN 配合排序能完成各种随机分配任务。掌握了这些基础工具后,后面学习统计函数和逻辑函数时会轻松很多——因为更复杂的函数本质上就是在这些基础能力上叠加条件判断和批量计算。

上一章公式介绍下一章统计函数