Excel 函数查询手册

本手册适用于 Excel 2016 / 2019 / 2021 / Microsoft 365 / WPS 表格,新函数会标注版本要求

🧠 逻辑判断类

IF

根据条件返回不同结果,最常用的逻辑判断函数

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

参数说明:

  • 条件:需要判断的逻辑表达式
  • 值为真时的结果:条件成立时返回的值
  • 值为假时的结果:条件不成立时返回的值

案例:

=IF(B2>=60, "及格", "不及格") 判断B2单元格成绩是否≥60,是则显示"及格",否则显示"不及格"

IFS Excel 2019+

替代多层嵌套IF,多条件判断更清晰易读

语法:=IFS(条件1, 结果1, 条件2, 结果2, ..., TRUE, 默认值)

参数说明:

  • 条件1/条件2:按顺序判断的逻辑条件
  • 结果1/结果2:对应条件成立时返回的结果
  • TRUE:可选,所有条件都不成立时返回默认值

案例:

=IFS(B2>=90, "A", B2>=80, "B", B2>=70, "C", B2>=60, "D", TRUE, "F") 按分数划分等级,90+为A,80+为B,以此类推

AND

所有参数都为真时返回TRUE,否则返回FALSE,用于多条件同时成立的判断

语法:=AND(条件1, 条件2, ...)

案例:

=IF(AND(C2>10000, D2="A"), "重点客户", "") 筛选销售额>10000且客户等级为A的重点客户

OR

任意一个参数为真时返回TRUE,所有参数都为假时返回FALSE

语法:=OR(条件1, 条件2, ...)

案例:

=IF(OR(B2="总监", B2="经理"), "管理人员", "普通员工") 判断职位是总监或经理的为管理人员

NOT

对条件结果取反,条件为真返回FALSE,条件为假返回TRUE

语法:=NOT(条件)

案例:

=IF(NOT(ISBLANK(A2)), "已填写", "未填写") 判断A2单元格不为空时显示"已填写"

XOR Excel 2013+

奇数个条件为真时返回TRUE,偶数个或0个为真时返回FALSE

案例:

=IF(XOR(B2>90, C2>90), "偏科", "均衡") 语文和数学只有一科超过90分时判定为偏科

SWITCH Excel 2019+

根据表达式的值匹配对应结果,比IFS更适合固定值匹配场景

案例:

=SWITCH(B2, 1, "一级", 2, "二级", 3, "三级", "未知") 根据等级数值返回对应的等级名称

IFNA Excel 2013+

只捕获#N/A错误,其他错误(如#DIV/0!)仍然显示,比IFERROR更精准

案例:

=IFNA(VLOOKUP(A2, 表1, 2, 0), "无此数据") 只有查找不到时显示"无此数据",公式本身错误仍然正常提示

📝 文本处理类

LEFT / RIGHT / MID

从文本的左侧、右侧或中间指定位置截取指定长度的字符

语法:
=LEFT(文本, 截取长度)
=RIGHT(文本, 截取长度)
=MID(文本, 开始位置, 截取长度)

案例:

=LEFT(A2, 3) 提取A2单元格前3位字符
=MID(A2, 7, 8) 从身份证第7位开始提取8位出生日期

CONCAT / TEXTJOIN

将多个文本字符串合并为一个,TEXTJOIN支持指定分隔符

案例:

=TEXTJOIN("-", TRUE, A2:C2) 将A2、B2、C2单元格内容用"-"连接,忽略空单元格

LEN / LENB

LEN按字符数计算长度,LENB按字节数计算(中文占2字节,英文数字占1字节)

案例:

=LEN(A2) 计算A2单元格文本的字符长度

FIND / SEARCH

查找指定文本在原文本中的起始位置,FIND区分大小写,SEARCH不区分

案例:

=FIND("@", A2) 查找邮箱地址中@符号的位置,用于提取邮箱前缀后缀

SUBSTITUTE

替换文本中指定的内容,支持替换所有或指定第几个匹配项

案例:

=SUBSTITUTE(A2, " ", "") 批量删除A2单元格中的所有空格

REPLACE

从指定位置开始替换指定长度的文本,适合按位置替换的场景

案例:

=REPLACE(A2, 4, 4, "****") 手机号中间4位替换为星号,实现脱敏

TRIM

去除文本首尾的空格,以及文本中间多余的空格(只保留一个空格)

案例:

=TRIM(A2) 清理A2单元格中复制粘贴带来的多余空格

TEXT

将数值、日期按指定格式转换为文本格式,非常灵活强大

案例:

=TEXT(TODAY(), "yyyy年mm月dd日") 将当前日期格式化为"2024年05月20日"格式

VALUE

将文本格式的数字转换为数值格式,解决看起来是数字但无法计算的问题

案例:

=VALUE(A2) 将A2中文本格式的销售额转换为数值,即可正常求和计算

🔢 数值统计类

SUM / SUMIF / SUMIFS

求和函数,SUMIF单条件求和,SUMIFS多条件求和

案例:

=SUM(C2:C100) 求和C列所有销售额
=SUMIF(B:B, "产品A", C:C) 只统计产品A的销售额

COUNT / COUNTIF / COUNTIFS

计数函数,统计符合条件的单元格数量

案例:

=COUNTIF(C:C, ">10000") 统计销售额大于10000的记录数量

MAX / MIN

MAX返回区域中的最大值,MIN返回区域中的最小值

案例:

=MAX(C:C) 返回销售列中的最高销售额

AVERAGE / AVERAGEIF / AVERAGEIFS

计算平均值,AVERAGEIF单条件平均,AVERAGEIFS多条件平均

案例:

=AVERAGEIF(B:B, "产品A", C:C) 计算产品A的平均销售额

SUMPRODUCT

将对应区域的元素相乘后求和,非常强大的多条件统计函数

案例:

=SUMPRODUCT((B:B="产品A")*(C:C>10000)*C:C) 统计产品A中销售额大于1万的总销售额

SUBTOTAL

多功能汇总函数,支持求和、计数、平均等,会自动忽略筛选隐藏的行

常用功能代码:

  • 1=平均,2=计数,3=非空计数,4=最大值,5=最小值,9=求和
  • 加100前缀(如109)忽略手动隐藏行

案例:

=SUBTOTAL(109, C:C) 对C列求和,自动忽略筛选和隐藏的行

ROUND / ROUNDUP / ROUNDDOWN

ROUND标准四舍五入,ROUNDUP向上取整,ROUNDDOWN向下取整

案例:

=ROUND(C2, 2) 将C2的销售额保留2位小数

INT / MOD

INT向下取整,MOD返回两数相除的余数

案例:

=MOD(ROW(), 2) 返回1和0交替,用于隔行变色的条件格式

LARGE / SMALL

LARGE返回区域中第N大的值,SMALL返回第N小的值

案例:

=LARGE(C:C, 3) 返回销售额排名第3的数值

RANK

返回数值在区域中的排名,排序方式0=降序(默认),1=升序

案例:

=RANK(C2, C:C) 返回C2的销售额在整个C列中的排名

💰 财务函数类

PMT

计算贷款的每期还款额,非常实用的财务函数

案例:

=PMT(4.9%/12, 30*12, 1000000) 计算100万贷款,年利率4.9%,30年等额本息的月供

PV

计算投资的现值,即未来一系列付款现在的价值

案例:

=PV(3%, 10, -10000) 计算每年末存1万,年利率3%,存10年相当于现在一次性存多少钱

FV

计算投资的未来值,即定期定额投资到期后的总金额

案例:

=FV(3%, 10, -10000) 每年存1万,年利率3%,存10年后的总金额

IRR

计算一系列现金流的内部收益率,用于判断投资项目是否划算

📅 日期时间类

TODAY / NOW

TODAY返回当前日期,NOW返回当前日期+时间,会自动更新

案例:

=DATEDIF(B2, TODAY(), "y") 根据B2的出生日期计算年龄

DATEDIF 隐藏函数

计算两个日期之间的间隔(年、月、日)

语法:=DATEDIF(开始日期, 结束日期, "单位")
单位:"y"=年,"m"=月,"d"=日,"md"=同月天数差,"ym"=同年月份差,"yd"=同年天数差

YEAR / MONTH / DAY

分别提取日期中的年、月、日数值

案例:

=YEAR(TODAY()) 返回当前年份

WEEKDAY / WEEKNUM

WEEKDAY返回日期是星期几,WEEKNUM返回日期是一年中的第几周

案例:

=WEEKDAY(A2, 2) 返回1=周一,2=周二...7=周日,符合国内习惯

EOMONTH / EDATE

EDATE返回日期偏移N个月后的日期,EOMONTH返回偏移N个月后的月末日期

案例:

=EOMONTH(TODAY(), 0) 返回当月最后一天的日期

WORKDAY / NETWORKDAYS

计算工作日,自动排除周末和法定节假日,非常适合HR和行政使用

案例:

=NETWORKDAYS(A2, B2, 节假日!A:A) 计算两个日期之间的工作日天数,排除自定义节假日

⚠️ 错误处理类

IFERROR

捕获公式错误,返回自定义内容,避免显示#N/A、#DIV/0!等错误值

案例:

=IFERROR(VLOOKUP(A2, 表1, 2, 0), "无数据") VLOOKUP找不到内容时显示"无数据"而不是#N/A

IS系列判断函数

一系列用于判断单元格类型的函数,返回TRUE或FALSE,经常和IF搭配使用

常用IS函数:

  • ISERROR:判断是否为任意错误
  • ISNA:判断是否为#N/A错误
  • ISBLANK:判断是否为空单元格
  • ISTEXT:判断是否为文本
  • ISNUMBER:判断是否为数值
  • ISEVEN/ISODD:判断是否为偶数/奇数

案例:

=IF(ISBLANK(A2), "请填写", "已填写") 判断A2为空时提示"请填写"

🚀 进阶实用技巧

  • 1.

    动态下拉菜单+自动填充

    结合数据验证+XLOOKUP,选中客户名自动带出电话、地址等信息

  • 2.

    去除重复项统计

    =UNIQUE(A2:A100) 提取不重复值,搭配=COUNTIF(A:A, D2)统计出现次数

  • 3.

    销售排行榜

    =LARGE(C2:C100, 1)取第1名销售额,搭配INDEX+MATCH返回对应销售员姓名

❓ 常见问题

Q: VLOOKUP查找不到值,显示#N/A怎么办?

A: 1. 检查查找值和查找列格式是否一致(文本/数值);2. 查找值是否在查找区域第一列;3. 匹配模式是否用了FALSE(精确匹配);4. 外层套IFERROR返回友好提示。

Q: 日期显示为一串数字怎么办?

A: Excel中日期本质是数值,将单元格格式改为日期格式即可正常显示。

Q: 公式输入后不计算,只显示公式文本怎么办?

A: 检查单元格格式是否为文本,改为常规格式,再双击单元格回车即可。

语法已复制到剪贴板