夜雨聆风学习资料网

ARTICLE · 1092032

Excel 学习笔记 · 函数篇

Excel 学习笔记 · 函数篇

百灵鸟的笔记本 —— 新系列开篇。跟着网课学 Excel,把函数和技巧整理成篇。


一、函数全景速查

先上速查表。42 个高频函数按场景分类,忘了就回来翻:

基础统计

函数
用途
示例用法
SUM
快速求和
=SUM(A1:A10)
AVERAGE
计算平均值
=AVERAGE(A1:A10)
COUNT
统计数字个数
=COUNT(A1:A10)
COUNTA
统计非空单元格
=COUNTA(A1:A10)
MAX / MIN
找最大 / 最小值
=MAX(A1:A10)
MEDIAN
计算中位数
=MEDIAN(A1:A10)
MODE
找出频率最高值
=MODE(A1:A10)
RANK
数据排名
=RANK(A1,A1:A10)

文本处理

函数
用途
示例用法
TRIM
删除多余空格
=TRIM(A1)
CLEAN
清除不可见字符
=CLEAN(A1)
SUBSTITUTE
替换特定文本
=SUBSTITUTE(A1,"旧文本","新文本")
TEXT
格式化数字为文本
=TEXT(A1,"格式")
VALUE
文本转数值
=VALUE(A1)
LEFT / RIGHT
截取左右字符
=LEFT(A1,3)
MID
截取中间字符
=MID(A1,7,8)
LEN
计算字符长度
=LEN(A1)
FIND / SEARCH
查找字符位置
=FIND("文本",A1)
CONCAT
合并文本
=CONCAT(A1,B1,C1)
TEXTJOIN
智能拼接文本
=TEXTJOIN("-",TRUE,A1:A10)

查找引用

函数
用途
示例用法
VLOOKUP
垂直查找
=VLOOKUP(查找值,区域,列号,0)
HLOOKUP
水平查找
=HLOOKUP(查找值,区域,行号,0)
XLOOKUP
新版万能查找
=XLOOKUP(查找值,查找数组,返回数组)
INDEX
返回指定位置数据
=INDEX(数组,行号,[列号])
MATCH
查找元素位置
=MATCH(查找值,查找数组,0)
INDIRECT
动态引用单元格
=INDIRECT("A1")
OFFSET
偏移引用区域
=OFFSET(基点,行偏移,列偏移)

日期时间

函数
用途
示例用法
TODAY / NOW
当前日期 / 时间
=TODAY()
DATEDIF
计算日期差值
=DATEDIF(开始,结束,"Y")
EDATE
计算到期日
=EDATE(开始,月数)
WEEKDAY
判断星期几
=WEEKDAY(日期,2)
WORKDAY
排除周末算工作日
=WORKDAY(开始,天数)

逻辑判断

函数
用途
示例用法
IF
条件判断
=IF(条件,真值,假值)
AND / OR
多条件组合
=AND(条件1,条件2)
IFS
多条件分支
=IFS(条件1,值1,条件2,值2)
SWITCH
多条件切换
=SWITCH(表达式,值1,值2)
IFERROR
错误值自动替换
=IFERROR(A1/B1,"错误")

数学计算

函数
用途
示例用法
ROUND
四舍五入
=ROUND(A1,2)
SUMIF
单条件求和
=SUMIF(区域,条件,求和区域)
SUMIFS
多条件求和
=SUMIFS(求和区域,区域1,条件1,...)
COUNTIF
单条件计数
=COUNTIF(A:A,"苹果")
COUNTIFS
多条件计数
=COUNTIFS(区域1,条件1,...)
SUMPRODUCT
数组乘积求和
=SUMPRODUCT(数组1,数组2)

二、高频操作技巧

快捷键与鼠标操作

  1. 1. Ctrl + ;:快速输入当天日期
  2. 2. 双击列的左右边线:调整至合适列宽
  3. 3. 双击单元格上下边线:跳到最前 / 最后一个单元格
  4. 4. 日期单元格右键拖拽:可选按天 / 工作日 / 年 / 月填充
  5. 5. 日期转星期:自定义单元格格式 aaa
  6. 6. F4:切换相对引用 / 绝对引用
  7. 7. Ctrl + 回车:批量填充

查找替换与通配符

替换时勾选「单元格匹配」:单元格必须与查找内容完全相同才会被替换。

通配符三兄弟:

符号
含义
*
任意多个字符
?
单个字符
~
让后面的通配符失效(转义)

定位条件的四个妙用

路径:开始 → 查找和选择 → 定位条件

问题
做法
给带批注的单元格上色
定位条件 → 批注
给带公式的单元格上色
定位条件 → 公式
填充合并单元格解散后的空白
定位条件 → 空值 → 输入 = 再按 ↑ → Ctrl+回车
批量删除图片
定位条件 → 对象

原理:合并单元格解散后,Excel 只认为第一行有值,其余全是空值——先定位空值,再一键填充。

筛选的三个细节

  1. 1. 筛选后只复制可见单元格:定位条件 → 可见单元格(否则隐藏行也会被复制走)
  2. 2. 高级筛选不重复值:数据 → 高级 → 勾选「选择不重复的记录」
  3. 3. 用公式区域做筛选条件:条件区域的表头要「故意写错」,不能与原表头相同

三、条件计数与求和:COUNTIF / SUMIF 家族

COUNTIF:单条件计数

=COUNTIF(范围, 条件)
场景
公式示例
说明
统计等于某个值
=COUNTIF(A:A, "苹果")
A 列中"苹果"的个数
统计大于某个值
=COUNTIF(B:B, ">90")
B 列大于 90 的个数
统计不为空
=COUNTIF(C:C, "<>")
非空单元格数
通配符 *
=COUNTIF(D:D, "张*")
以"张"开头
通配符 ?
=COUNTIF(E:E, "???")
正好 3 个字符
引用单元格条件
=COUNTIF(F:F, ">"&G1)
大于 G1 的值
统计包含某文本
=COUNTIF(H:H, "销售")
包含"销售"

典型应用:查重复数据、数据有效性、条件格式。

⚠️ 15 位数字陷阱:COUNTIF 对超过 15 位的数字只识别前 15 位,6223888811112222678 和 6223888811112222223 会被判为相等。正确写法是拼接通配符:=COUNTIF(A:A, A2&"*")。

COUNTIFS:多条件计数

=COUNTIFS(条件区域1, 条件1, [条件区域2, 条件2], ...)
场景
公式示例
销售部且销售额 > 10000
=COUNTIFS(A:A, "销售", B:B, ">10000")
分数在 80~90 之间
=COUNTIFS(C:C, ">=80", C:C, "<=90")
男性且年龄 > 30
=COUNTIFS(D:D, "男", E:E, ">30")
模糊匹配
=COUNTIFS(J:J, "销售", K:K, "是")

SUMIF 与 SUMIFS:参数顺序正好相反

=SUMIF(条件区域, 条件, [求和区域])=SUMIFS(求和区域, 条件区域1, 条件1, [条件区域2, 条件2], ...)

SUMIF 常见用法:

场景
公式示例
说明
"销售"组业绩总和
=SUMIF(A:A, "销售", B:B)
条件区域 A 列,求和 B 列
大于 90 的分数总和
=SUMIF(C:C, ">90")
省略求和区域,对 C 列自身求和
"张"姓员工销量
=SUMIF(D:D, "张*", E:E)
通配符匹配
不等于"暂停"的金额
=SUMIF(F:F, "<>暂停", G:G)
<>
 表示不等于
引用单元格
=SUMIF(H:H, ">"&I1, J:J)
条件大于 I1 的值

记忆点:SUMIF 的求和区域在最后,SUMIFS 的求和区域在最前。一个后置、一个前置,写混必报错。

⚠️ 注意:条件区域和求和区域行数必须一致;文本和通配符要加双引号,数字和单元格引用不用。


四、查找引用三巨头

VLOOKUP

=VLOOKUP(查找值, 表格区域, 返回列号, 匹配模式)

四条铁律:

  1. 1. 查找列必须位于区域第一列,VLOOKUP 只能向右找
  2. 2. 精确匹配一律写 0,别省
  3. 3. 按 F4 锁定查找区域($A$2:$D$100),防止下拉偏移
  4. 4. 找不到返回 #N/A,用 IFERROR 兜底:=IFERROR(VLOOKUP(...), "未找到")

近似匹配:区间分级(成绩等级、税率、折扣都靠它)

A(下限)
B(折扣)
0
0%
1000
5%
5000
10%
=VLOOKUP(C2, A$2:B$4, 2, 1)

C2 = 3000 时返回 5%(3000 ≥ 1000 且 < 5000)。区间下限必须升序排列。

XLOOKUP:新一代查找

=XLOOKUP(查找值, 查找数组, 返回数组, [未找到时返回的值], [匹配模式], [搜索模式])
场景
公式示例
基本查找
=XLOOKUP(E2, A:A, B:B)
向左查找
=XLOOKUP(F2, B:B, A:A)
未找到提示
=XLOOKUP(E2, A:A, B:B, "无此人")
多条件查找
=XLOOKUP(E2&F2, A:A&B:B, C:C)

核心优势:默认精确匹配、支持向左查找、未找到值直接写在第四参数(不用嵌套 IFERROR)、还能设置搜索模式从后往前找。

INDEX + MATCH

=INDEX(返回值列, MATCH(查找值, 查找列, 0))

向左查找(VLOOKUP 做不到)——根据姓名反查学号:

=INDEX(A2:A100, MATCH(F2, B2:B100, 0))

指定返回区域中的第几列:

=INDEX(B2:D100, MATCH(E2, A2:A100, 0), 2)

三者怎么选

方案
优点
局限
VLOOKUP
上手快,资料多
只能向右,列一变就崩
INDEX + MATCH
向左向右都行,性能好
两个函数,语法稍绕
XLOOKUP
全能,语法最简
需要 365 / 2021+

五、多条件查找的两种写法

写法一:辅助列

VLOOKUP 不支持多条件,就自己造一列合并条件:在原始表最前面加一列 =C2&D2(姓名&月份),然后:

=VLOOKUP(F2&G2, A$2:E$100, 4, 0)

写法二:LOOKUP 万能公式(不用辅助列)

=LOOKUP(1, 0/((条件1区域=条件1)*(条件2区域=条件2)), 返回区域)

例:销售部里找张三的销售额:

=LOOKUP(1, 0/((A:A="销售部")*(B:B="张三")), C:C)

拆解:

  • • 条件满足返回 TRUE、不满足返回 FALSE,相乘后全部满足 = 1,否则 = 0
  • • 0/1 = 0,0/0 = #DIV/0!
  • • LOOKUP 找 1 找不到,就返回「小于等于 1 的最大值」——也就是那些 0 的位置
  • • 多个匹配时返回最后一个,这是 LOOKUP 的独门优势(VLOOKUP 只能返回第一个)

INDEX + MATCH 也有数组公式版本:

=INDEX(C2:C100, MATCH(1, (A2:A100=E2)*(B2:B100=F2), 0))

LOOKUP 模糊匹配:区间定等级

=LOOKUP(B2, {0,60,80,90}, {"不及格","及格","良好","优秀"})

查找向量必须升序,返回「小于等于查找值的最大值」对应的等级。65 分落在 60~80,返回"及格"。


六、文本函数与身份证实战

基础函数一张表:

函数
语法
说明
示例
LEFT
=LEFT(字符串,n)
从左截取 n 位
=LEFT("ABC123",3) → ABC
RIGHT
=RIGHT(字符串,n)
从右截取 n 位
=RIGHT("ABC123",3) → 123
MID
=MID(字符串,起,n)
从第"起"位截 n 位
=MID("ABC123",2,2) → BC
LEN
=LEN(字符串)
字符数(汉字算 1)
=LEN("Excel数据分析") → 9
LENB
=LENB(字符串)
字节数(汉字算 2)
=LENB("Excel数据分析") → 13
FIND
=FIND(找什么,在哪找)
返回位置,区分大小写
=FIND("L","Excel") → 3

记忆点:LENB(A1)-LEN(A1) > 0,说明单元格里混了汉字。

一张身份证,四个公式全覆盖(B2 为身份证号):

任务
公式
提取生日
=--TEXT(MID(B2,7,8),"0000-00-00")
判断性别
=IF(MOD(MID(B2,17,1),2)=1,"男","女")
判断地区
=VLOOKUP(LEFT(B2,6),地区表!A:B,2,0)
校验真伪
第 18 位校验码与前 17 位计算值比对(MID + VALUE + MOD 组合)

拆解(性别):身份证第 17 位代表性别,奇数男、偶数女。MID 取出第 17 位 → MOD 除 2 取余 → IF 判断。


七、日期函数速查

函数
语法
示例
说明
YEAR / MONTH / DAY
=YEAR(日期)
=YEAR("2024/3/15") → 2024
提取年 / 月 / 日
DATE
=DATE(年,月,日)
=DATE(2024,3,15)
拼出日期
DATEDIF
=DATEDIF(开始,结束,类型)
"Y" 整年 / "M" 整月 / "D" 天数
算日期差
WEEKNUM
=WEEKNUM(日期,2)
→ 当年第几周
参数 2 = 周一起始
WEEKDAY
=WEEKDAY(日期,2)
→ 5
参数 2 = 周一记为 1

DATEDIF 还有三个进阶类型:

类型
含义
示例
MD
忽略月和年,只算日的差
1/20 → 3/15 = 24
YM
忽略日和年,只算月的差
2023/5/20 → 2024/3/15 = 10
YD
忽略年,只算天的差
2023/5/20 → 2024/3/15 = 300

八、INDIRECT:把文本变成引用

=INDIRECT(文本引用, [a1])
公式
说明
=INDIRECT("A1")
返回 A1 的值
=INDIRECT("B"&C1)
C1 = 3 时返回 B3
=INDIRECT("'"&A1&"'!B2")
A1 存表名,动态跨表引用

⚠️ 工作表名含空格或特殊字符时必须用单引号包裹:=INDIRECT("'Sheet 2'!A1")。

经典应用:二级下拉列表

  1. 1. 给每个二级选项区域定义名称,名称 = 一级选项文本(如"北京"对应 F1:F3 的三个区)
  2. 2. 一级下拉:数据验证 → 序列 → 来源 =$E$1:$E$3
  3. 3. 二级下拉:数据验证 → 序列 → 来源 =INDIRECT(A1)

一级选"北京",二级就只剩北京的区可选。


九、数学函数与舍入

函数
语法
说明
示例
ROUND
=ROUND(数,n)
四舍五入到 n 位
=ROUND(3.14159,2) → 3.14
ROUNDUP
=ROUNDUP(数,n)
远离 0 向上舍
=ROUNDUP(3.14159,2) → 3.15
ROUNDDOWN
=ROUNDDOWN(数,n)
靠近 0 向下舍
=ROUNDDOWN(3.14159,2) → 3.14
INT
=INT(数)
向下取整
=INT(-3.01) → -4
MOD
=MOD(被除数,除数)
取余数
=MOD(10,3) → 1
ROW / COLUMN
=ROW(A5)
返回行号 / 列号
=ROW(A5) → 5

记忆技巧:INT 是"地板",负数要小心——INT(-3.01) 不是 -3 而是 -4。

MOD 除了判身份证性别,还能把假期小时数换算成"X 天 Y 小时":

=INT(A1/8) & "天" & MOD(A1,8) & "小时"

OFFSET 动态图表、宏表函数、数据透视表,留给下一篇。

百灵鸟的笔记本 · Excel 函数篇网课啃完一章记一章,整理成篇方便以后翻。

相关学习资料