乐于分享
好东西不私藏

Excel 常用函数全解析:从 IF、SUMIFS 到 XLOOKUP,一次讲清工作中最常用的 30 个函数

Excel 常用函数全解析:从 IF、SUMIFS 到 XLOOKUP,一次讲清工作中最常用的 30 个函数

同一个 Excel 表格,有人算了半天算不对,有人一个公式下去,三秒出结果。

差距在哪?不是谁更聪明,而是谁手里的"武器"更趁手。

Excel 里有几百个函数,但真正干活用的,翻来覆去就那么 30 个。掌握了它们,90% 的办公场景你都能一招搞定。

今天这篇文章,我把这 30 个函数按7 大类拆开讲:每个函数的语法、用法、真实办公案例,一次给你讲透。建议收藏,用到的时候翻出来对照。


第一类:基础统计——数据汇总的"四则运算"

1. SUM:求和

语法:=SUM(数据区域)

场景:算一个月的销售总额、一周的支出合计。

案例:=SUM(C2:C31)——把 C2 到 C31 的所有数字加起来。

注意:SUM 只认数字,文本和空单元格会被自动忽略。如果单元格里有"100元"这种带文字的内容,SUM 会把它当 0 处理。


2. AVERAGE:求平均值

语法:=AVERAGE(数据区域)

场景:算平均客单价、平均响应时间、平均出勤率。

案例:=AVERAGE(D2:D100)——算 100 个订单的平均金额。

注意:AVERAGE 会把 0 算进去,但不算空格。如果某个单元格填了 0(比如退款订单),它会拉低平均值。想排除 0,用 =AVERAGEIF(D2:D100,"<>0")。


3. COUNT / COUNTA:计数

语法:

  • =COUNT(数据区域)
    ——只数数字单元格
  • =COUNTA(数据区域)
    ——数非空单元格,文本、数字都算

场景:COUNT 用来统计有多少人填了成绩(数字);COUNTA 用来统计签到表有多少人签了名(不管是名字还是工号)。

案例:=COUNTA(A2:A50)——A 列有多少个单元格有内容。

补充:=COUNTBLANK(C2:C100)——反过来,数有多少个空格。


4. MAX / MIN:最大值和最小值

语法:=MAX(数据区域) / =MIN(数据区域)

场景:找最高销售额、最低报价、最晚交货日期。

案例:=MAX(E2:E200)——找出 200 个订单里金额最大的那笔。


5. RANK.EQ:排名

语法:=RANK.EQ(数值, 比较区域, [排序方式])

排序方式:0 或省略 = 降序(最大的排第1);1 = 升序(最小的排第1)。

场景:给销售业绩排名、给考试成绩排名。

案例:=RANK.EQ(D2, D$2:D$100, 0)——D2 的销售额在全部 100 个数据中排第几。

注意:注意美元符号 $——D$2:D$100 表示下拉公式时范围不会跑偏。这是 Excel 里"绝对引用"的写法,新手一定要记住。


第二类:条件统计——"满足条件才算"

6. SUMIF:单条件求和

语法:=SUMIF(条件区域, 条件, 求和区域)

场景:只算"华东区"的销售额,只算"已完成"项目的工时。

案例:=SUMIF(A2:A100, "华东", E2:E100)——A 列是"华东"的那些行,对应的 E 列金额加在一起。

进阶写法:条件里可以用比较运算符:

  • =SUMIF(E2:E100, ">10000")
    ——金额超过 1 万的加起来
  • =SUMIF(B2:B100, ">=2026-01-01", E2:E100)
    ——2026 年以后的订单金额合计

7. SUMIFS:多条件求和

语法:=SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...)

注意:SUMIFS 的求和区域放在第一个参数,跟 SUMIF 不一样,这是很多人写错的地方。

场景:算"华东区"+"产品A"的销售额;算"3月份"+"技术部"+"已完成"的项目金额。

案例:=SUMIFS(E2:E500, A2:A500, "华东", B2:B500, "产品A", C2:C500, ">=2026-03-01")

三个条件同时满足:区域是华东、产品是 A、日期在 3 月之后。


8. COUNTIF:单条件计数

语法:=COUNTIF(条件区域, 条件)

场景:统计有多少人的成绩 >=60 分;统计"在职"状态有多少人。

案例:=COUNTIF(D2:D200, ">=60")——D 列中及格的人数。

通配符用法:=COUNTIF(A2:A100, "张*")——统计所有姓"张"的人。* 代表任意多个字符。


9. COUNTIFS:多条件计数

语法:=COUNTIFS(条件区域1, 条件1, 条件区域2, 条件2, ...)

场景:统计"销售部"+"本月签到满 22 天"的人数。

案例:=COUNTIFS(B2:B200, "销售部", C2:C200, ">=22")


10. AVERAGEIF:条件求平均

语法:=AVERAGEIF(条件区域, 条件, 平均区域)

场景:算"上海"门店的平均客单价;算"及格以上"成绩的平均分。

案例:=AVERAGEIF(A2:A100, "上海", F2:F100)——A 列是上海的行,F 列客单价的平均值。


第三类:逻辑判断——让表格"会思考"

11. IF:条件判断

语法:=IF(条件, 条件为真时的值, 条件为假时的值)

场景:成绩 >=60 显示"及格",否则"不及格";销售额达标显示"完成",否则"未达标"。

案例:=IF(D2>=60, "及格", "不及格")

嵌套用法:=IF(D2>=90, "优秀", IF(D2>=75, "良好", IF(D2>=60, "及格", "不及格")))

三层嵌套就能做四档评级。但嵌套超过三层,建议改用 VLOOKUP 区间查找或 IFS 函数(Excel 2019+),不然公式长得自己都看不懂。


12. IFERROR:错误兜底

语法:=IFERROR(公式, 出错时显示的值)

场景:VLOOKUP 找不到会返回 #N/A,很难看。套一层 IFERROR,让它显示"未找到"或者空白。

案例:=IFERROR(VLOOKUP(A2, 数据表!A:C, 3, 0), "未找到该记录")

注意:IFERROR 会把所有错误都吃掉——包括你的公式写错导致的 #VALUE!、#REF! 等。排查问题时,建议先去掉 IFERROR,看到底报什么错。


13. AND / OR:多条件逻辑

语法:

  • =AND(条件1, 条件2, ...)
    ——所有条件都满足才返回 TRUE
  • =OR(条件1, 条件2, ...)
    ——满足任一条件就返回 TRUE

场景:配合 IF 使用: =IF(AND(D2>=60, E2>=60), "双科及格", "有不及格")

实际用法:AND 和 OR 很少单独用,它们几乎总是嵌在 IF 里面,充当"多重条件"的角色。


第四类:查找引用——Excel 最核心的能力

14. VLOOKUP:纵向查找

语法:=VLOOKUP(查找值, 数据区域, 返回第几列, 匹配方式)

匹配方式:0 或 FALSE = 精确匹配(99% 的场景用这个);1 或 TRUE = 近似匹配。

场景:根据工号查姓名、根据产品编号查价格、根据手机号查客户信息。

案例:=VLOOKUP(A2, 员工表!A:D, 3, 0)——在员工表的 A 列找 A2 的值,返回同行的第 3 列(姓名)。

VLOOKUP 的三个痛点:

  1. 查找值必须在数据区域的第一列,不能向左查
  2. 返回的是"第几列"这个数字,中间插了一列后,公式全错
  3. 默认是近似匹配,忘了写 0 就悄悄给你错误结果

15. XLOOKUP:新一代查找之王

语法:=XLOOKUP(查找值, 查找区域, 返回区域, [找不到时显示什么], [匹配模式], [搜索方向])

前三个参数必填,后三个可选。

案例:=XLOOKUP(A2, 员工表!A:A, 员工表!C:C, "未找到")

XLOOKUP 比 VLOOKUP 强在哪:

  • 查找区域和返回区域各自独立,不用数第几列
  • 支持向左查找(VLOOKUP 做不到)
  • 内置"找不到时显示什么"的参数,不用套 IFERROR
  • 默认就是精确匹配,不会悄悄出错
  • 支持一次返回多列:=XLOOKUP(A2, B:B, C:E) 一次返回三列

多条件查找:=XLOOKUP("销售部"&"张三", A2:A100&B2:B100, D2:D100)

区间查找(评级):=XLOOKUP(82, {0,60,75,90}, {"不及格","及格","良好","优秀"}, , -1)——返回"良好"。

注意:XLOOKUP 需要 Excel 2021 或 Microsoft 365。老版本用不了,用 INDEX+MATCH 代替。


16. INDEX:按位置取值

语法:=INDEX(数据区域, 第几行, [第几列])

场景:INDEX 本身很简单——"第 3 行第 2 列的值是多少"。但它和 MATCH 组合起来,就是 Excel 最强大的查找方案。

案例:=INDEX(C2:C100, 5)——返回 C 列第 5 个值。


17. MATCH:定位查找

语法:=MATCH(查找值, 查找区域, [匹配方式])

匹配方式:0 = 精确匹配;1 = 小于等于查找值的最大值(需升序排列);-1 = 大于等于查找值的最小值(需降序排列)。

场景:MATCH 不返回值,它只返回"在第几个位置"。单独用没意义,但配合 INDEX 就无敌了。

INDEX + MATCH 黄金组合:=INDEX(C2:C100, MATCH(A2, B2:B100, 0))

含义:在 B 列找到 A2 的位置,然后返回 C 列同一个位置的值。效果等同于 VLOOKUP,但不受列顺序限制,中间插列也不会出错。


18. OFFSET:动态引用

语法:=OFFSET(基准单元格, 向下偏移几行, 向右偏移几列, [返回几行], [返回几列])

场景:做动态图表时,让数据范围自动跟随最新月份;做滚动窗口平均值。

案例:=SUM(OFFSET(A1, 1, 0, COUNTA(A:A)-1, 1))——自动求 A 列所有数据的合计,不管数据增加到多少行。

注意:OFFSET 是易失性函数,每次表格有任何变动它都会重算。数据量大时会影响性能,谨慎使用。


第五类:文本处理——跟字符串较劲

19. LEFT / RIGHT / MID:截取字符

语法:

  • =LEFT(文本, 截取长度)
    ——从左截取
  • =RIGHT(文本, 截取长度)
    ——从右截取
  • =MID(文本, 起始位置, 截取长度)
    ——从中间截取

案例:

  • =LEFT(A2, 3)
    ——提取产品编号的前 3 位地区码
  • =RIGHT(B2, 4)
    ——提取手机号后 4 位
  • =MID(C2, 7, 8)
    ——从身份证号第 7 位截取 8 位出生日期

20. LEN:字符长度

语法:=LEN(文本)

场景:检查手机号是不是 11 位、身份证号是不是 18 位、输入的内容是否超长。

案例:=IF(LEN(A2)=11, "位数正确", "请检查手机号")

补充:=LENB(文本)——计算字节数。一个汉字算 2 字节,英文字母算 1 字节。可以用来判断有没有输入中文。


21. TRIM:去除多余空格

语法:=TRIM(文本)

场景:从其他系统导出的数据,经常带有莫名其妙的空格,导致 VLOOKUP 匹配不上。TRIM 可以清除前后空格,并把中间的连续空格压缩为一个。

案例:=TRIM(A2)

组合用法:=VLOOKUP(TRIM(D2), TRIM(员工表!A:A), 2, 0)——查找前先清理空格,大幅提升匹配成功率。


22. CONCAT / TEXTJOIN:文本拼接

语法:

  • =CONCAT(文本1, 文本2, ...)
    ——直接拼接,没有分隔符
  • =TEXTJOIN(分隔符, 是否忽略空值, 文本1, 文本2, ...)
    ——带分隔符拼接

案例:

  • =CONCAT(A2, "-", B2)
    ——拼出 "华东-产品A"
  • =TEXTJOIN(",", TRUE, A2:A10)
    ——把 A2 到 A10 的内容用中文逗号连起来,自动跳过空格

注意:老版本 Excel 用的是 CONCATENATE,功能一样但写法更啰嗦。新版直接用 CONCAT 或 & 符号都行。


23. SUBSTITUTE / REPLACE:文本替换

语法:

  • =SUBSTITUTE(文本, 旧内容, 新内容, [第几个])
    ——按内容替换
  • =REPLACE(文本, 起始位置, 替换几个字符, 新内容)
    ——按位置替换

区别:SUBSTITUTE 是"找到这个字换掉",REPLACE 是"从第几个字开始换掉"。

案例:

  • =SUBSTITUTE(A2, "北京", "上海")
    ——把文本里的"北京"换成"上海"
  • =REPLACE(B2, 7, 8, "********")
    ——把身份证号中间 8 位替换成星号(脱敏处理)

第六类:日期与时间——时间就是数据

24. TODAY / NOW:当前日期和时间

语法:

  • =TODAY()
    ——返回今天的日期(不含时间)
  • =NOW()
    ——返回当前日期+时间

场景:自动计算"距今多少天"、"还有几天到期"。

案例:=DATEDIF(A2, TODAY(), "D")——从 A2 的日期到今天过了多少天。

注意:TODAY 和 NOW 是"易失性函数",每次打开表格或有任何变动都会更新。如果需要固定某个日期,按 Ctrl+; 直接输入,不要用函数。


25. DATEDIF:日期差

语法:=DATEDIF(开始日期, 结束日期, "单位")

单位:"Y" = 年数、"M" = 月数、"D" = 天数。

场景:算工龄、算合同剩余天数、算项目历时。

案例:

  • =DATEDIF(A2, TODAY(), "Y")
    ——从 A2 入职日期到现在工作了多少年
  • =DATEDIF(TODAY(), B2, "D")
    ——距离 B2 的截止日期还有多少天

注意:DATEDIF 是 Excel 里的"隐藏函数",输入时没有提示,但确实能用。


26. EOMONTH:月末日期

语法:=EOMONTH(开始日期, 往后几个月)

场景:算还款日、算到期日、算"这个月最后一天"。

案例:

  • =EOMONTH(A2, 0)
    ——A2 所在月份的最后一天
  • =EOMONTH(A2, 1)
    ——A2 的下个月的最后一天
  • =EOMONTH(A2, 0)+1
    ——下个月的第一天(常用于生成月份起止区间)

第七类:动态数组新函数——Excel 的未来

以下函数需要 Excel 2021 或 Microsoft 365,WPS 最新版也已跟进。

27. FILTER:按条件筛选整片数据

语法:=FILTER(返回区域, 条件, [无结果时显示什么])

场景:筛选"销售部"的所有记录;筛选"金额>10万"的大额订单。

案例:=FILTER(A2:D500, B2:B500="华东", "无匹配数据")

多条件:用 * 表示"且",用 + 表示"或":

  • =FILTER(A2:D500, (B2:B500="华东")*(D2:D500>100000))
    ——华东区且金额超 10 万
  • =FILTER(A2:D500, (B2:B500="华东")+(B2:B500="华南"))
    ——华东或华南

注意:第三个参数一定要写!否则没有匹配结果时会报 #CALC! 错误。


28. UNIQUE:一键去重

语法:=UNIQUE(数据区域, [按列], [仅出现一次])

场景:提取所有不重复的客户名单;找出只来过一次的新客户。

案例:

  • =UNIQUE(B2:B500)
    ——提取 B 列所有不重复的值
  • =UNIQUE(B2:B500, , TRUE)
    ——只保留恰好出现一次的值(找出"一次性客户")

组合用法:=SORT(UNIQUE(B2:B500))——去重并自动排序。


29. SORT / SORTBY:公式排序

语法:

  • =SORT(数据区域, 排序依据第几列, 1升序/-1降序)
  • =SORTBY(返回区域, 排序依据区域, 1升序/-1降序)

场景:按销售额从高到低排列;按交期从近到远排序。

案例:

  • =SORT(A2:D100, 4, -1)
    ——按第 4 列降序排列
  • =SORTBY(A2:A100, D2:D100, -1)
    ——只返回姓名列,但按销售额降序排(不用把金额列也显示出来)

核心优势:源数据不会被改动,排序结果在另一个区域生成。再也不用担心"有人排了序把原始数据搞乱"。


30. TEXTSPLIT / TEXTBEFORE / TEXTAFTER:文本拆分三剑客

语法:

  • =TEXTSPLIT(文本, 分隔符)
    ——按分隔符拆成多列
  • =TEXTBEFORE(文本, 标记)
    ——提取标记之前的内容
  • =TEXTAFTER(文本, 标记)
    ——提取标记之后的内容

场景:拆分"省-市-区"地址;从"张三-男-28"中提取性别;从 URL 中提取域名。

案例:

  • =TEXTSPLIT(A2, "-")
    ——"张三-男-28" 拆成三列:张三 / 男 / 28
  • =TEXTBEFORE("江苏省南京市玄武区", "省")
    ——返回"江苏"
  • =TEXTAFTER("江苏省南京市玄武区", "市")
    ——返回"玄武区"

对比老方法:以前拆分文本要用 LEFT+FIN+MID 三个函数嵌套,现在一个 TEXTSPLIT 搞定。


30 个函数速查表

类别
函数
一句话说明
基础统计
SUM
求和
基础统计
AVERAGE
求平均
基础统计
COUNT / COUNTA
计数(数字/非空)
基础统计
MAX / MIN
最大/最小值
基础统计
RANK.EQ
排名
条件统计
SUMIF
单条件求和
条件统计
SUMIFS
多条件求和
条件统计
COUNTIF
单条件计数
条件统计
COUNTIFS
多条件计数
条件统计
AVERAGEIF
条件求平均
逻辑判断
IF
条件判断
逻辑判断
IFERROR
错误兜底
逻辑判断
AND / OR
多条件逻辑
查找引用
VLOOKUP
纵向查找
查找引用
XLOOKUP
新一代万能查找
查找引用
INDEX
按位置取值
查找引用
MATCH
定位查找
查找引用
OFFSET
动态引用
文本处理
LEFT/RIGHT/MID
截取字符
文本处理
LEN
字符长度
文本处理
TRIM
去多余空格
文本处理
CONCAT/TEXTJOIN
拼接文本
文本处理
SUBSTITUTE/REPLACE
替换文本
日期时间
TODAY/NOW
当前日期时间
日期时间
DATEDIF
日期差
日期时间
EOMONTH
月末日期
动态数组
FILTER
条件筛选
动态数组
UNIQUE
去重
动态数组
SORT/SORTBY
排序
动态数组
TEXTSPLIT等
文本拆分

这 30 个函数,不需要你一次全记住。

建议分三步走:

第一步:先把 SUM、AVERAGE、COUNT、IF、VLOOKUP 这 5 个吃透。这 5 个能覆盖 70% 的日常需求。打开你手边的表格,找个地方试一遍,比看十篇文章管用。

第二步:学会 SUMIFS + IFERROR 的组合。条件求和+错误兜底,这两个加上去,你的表格就从"能用"升级到"好用"。

第三步:如果你的 Excel 版本支持动态数组,重点学 XLOOKUP、FILTER、UNIQUE。这三个函数会让你的效率直接翻倍,而且写出来的公式比老方法短得多、好懂得多。

函数不在多,够用就行。但每一个你学会的函数,都会在未来某个加班的夜晚,帮你早回家一个小时。

收藏这篇文章,下次用到哪个,翻出来对照。