ARTICLE · 1018444
收藏备用!做了20年Excel,我把最常用的95个函数编成了速查宝典,超全面
点击👆Excel不加班,关注星标★不迷路

很久以前就有粉丝让卢子总结Excel平常用到的函数,以后遇到问题了就像查字典一样,终于狠下心来做这件事。
趁着空闲,整理了95个函数按用途排成九组,从头到尾编了 1 到 95 号。前面的 1—80 号是各版本通用的老底子,81—95 号是近年新增的新函数。不用背,把它当成一本能翻页码的字典就行。
一.求和与计数(报表的骨架)
这一类是所有汇总表的底子,用熟了能干掉一大半重复劳动。
1 SUM|一组数求和2 SUMIF|按一个条件汇总3 SUMIFS|按多个条件同时汇总4 SUMPRODUCT|单价乘数量再合计5 COUNTIF|单条件计数6 COUNTIFS|多条件计数7 SUBTOTAL|分类汇总,自动跳过隐藏行8 AGGREGATE|高级汇总,忽略错误值和隐藏行
1 =SUM(A1:A10)
2 =SUMIF(B:B,"北京",C:C)
3 =SUMIFS(D:D,B:B,"北京",C:C,">100")
4 =SUMPRODUCT(A1:A5,B1:B5)
5 =COUNTIF(B:B,"北京")
6 =COUNTIFS(B:B,"北京",C:C,">100")
7 =SUBTOTAL(9,A1:A10)
8 =AGGREGATE(9,7,A1:A10)
=SUMIFS(D:D,B:B,"北京",C:C,">100")
7 号 SUBTOTAL 和 8 号 AGGREGATE 是做筛选报表的必备。你筛选之后,普通 SUM 会把隐藏行也算进去,SUBTOTAL 不会。AGGREGATE 比它更狠,连错误值都能跳过。
注意:SUBTOTAL 的第一个参数是功能号,9 代表求和、1 代表平均、2 代表计数、3 代表非空计数、4 代表最大值、5 代表最小值。别直接写成 SUM。
二.数学计算与取整(处理数据的基本功)
都是跟数值打交道的活,难点不在会不会写,而在该用哪一种取整方式。
9 ROUND|四舍五入到指定小数位10 ROUNDUP|始终向上取值11 ROUNDDOWN|始终向下取值12 INT|去掉小数,只留整数部分13 ABS|去掉正负号,只看大小14 MOD|求余数15 POWER|计算次方16 SQRT|求平方根17 PRODUCT|多个数连续相乘18 RAND|生成 0~1 之间的随机小数19 RANDBETWEEN|生成指定范围内的随机整数20 PI|直接调用 π 的值
9 =ROUND(123.456,2) → 123.4610 =ROUNDUP(3.1415,2) → 3.1511 =ROUNDDOWN(3.1415,2) → 3.1412 =INT(8.9) → 813 =ABS(-15) → 1514 =MOD(10,3) → 115 =POWER(2,3) → 816 =SQRT(25) → 517 =PRODUCT(A1:A5)18 =RAND()19 =RANDBETWEEN(1,100)20 =PI() → 3.141592654
ROUND 是按规矩四舍五入的,3.145 保留两位得 3.15,3.144 保留两位得 3.14。ROUNDUP 是「宁可多算也不少算」,报价、预算、材料用量这种场合必须用它的。ROUNDDOWN 是「宁可少算也不多算」,做目标值、卡上限的时候用。
14 号 MOD 这个小函数,做排班和分组特别好用。比如要把一堆数据按 3 行一组分块:结果会是 1、2、3 循环,配合条件格式就能自动隔行标色。
=MOD(ROW(A3),3)+1
三.三角函数(工程场景专用)
这一类日常做报表基本碰不到,是做工程、测绘、机械、建筑的朋友才会用。看到别怕,知道有这么回事就行。
21 SIN|正弦值22 COS|余弦值23 TAN|正切值24 ASIN|已知正弦求角度25 ACOS|已知余弦求角度26 ATAN|已知正切求角度27 RADIANS|角度转弧度28 DEGREES|弧度转角度29 SINH|双曲正弦30 COSH|双曲余弦
21 =SIN(RADIANS(30)) → 0.522 =COS(RADIANS(60)) → 0.523 =TAN(RADIANS(45)) → 124 =DEGREES(ASIN(0.5)) → 30°25 =DEGREES(ACOS(0.5)) → 60°26 =DEGREES(ATAN(1)) → 45°27 =RADIANS(180) → 3.141628 =DEGREES(PI()) → 18029 =SINH(1) → 1.175230 =COSH(0) → 1
四.逻辑判断(让表格会思考)
31 IF|条件成立返回一个结果,不成立返回另一个32 IFERROR|公式出错时返回指定内容33 AND|所有条件都成立才为真34 OR|任意一个条件成立就为真35 NOT|返回相反的逻辑结果36 XOR|只有一个条件为真时才为真
31 =IF(A1>5,"Yes","No")
32 =IFERROR(A1/B1,"")
33 =AND(A1>5,A1<10)
34 =OR(A1>5,A1<10)
35 =NOT(A1>5)
36 =XOR(A1>5,A1<10)
=IFS(A1>=90,"优秀",A1>=80,"良好",A1>=60,"及格",TRUE,"不及格")
=IFERROR(你的原公式, "")
五.文本处理(数据清洗的主力)
37 LEFT|从左边取几个字38 RIGHT|从右边取几个字39 MID|从中间某个位置取几个字40 LEN|统计字符长度41 TRIM|去掉文本前后多余空格42 SUBSTITUTE|把指定文本换成新文本43 REPLACE|按位置替换一段内容44 FIND|区分大小写查找字符位置45 SEARCH|不区分大小写查找字符位置46 CONCAT|把多个文本拼到一起47 TEXTJOIN|批量连接,还能加分隔符48 LOWER|英文转小写49 UPPER|英文转大写50 PROPER|每个单词首字母大写
37 =LEFT(A1,3)
38 =RIGHT(A1,3)
39 =MID(A1,2,3)
40 =LEN(A1)
41 =TRIM(A1)
42 =SUBSTITUTE(A1,"旧","新")
43 =REPLACE(A1,2,3,"-")
44 =FIND("-",A1)
45 =SEARCH("-",A1)
46 =CONCAT(A1,B1)
47 =TEXTJOIN("+",TRUE,A1:A3)
48 =LOWER(A1)
49 =UPPER(A1)
50 =PROPER(A1)
=LEFT(A1,2)
=MID(A1,3,4)
=RIGHT(A1,3)
42 号 SUBSTITUTE 和 43 号 REPLACE 都是替换,区别在「你知不知道位置」。SUBSTITUTE 是按内容换:月结30天 里把「月结」干掉。
=SUBSTITUTE(A1,"月结","")
REPLACE 是按位置换:第 2 位开始换2个字符。
=REPLACE(A1,2,2,"XX")
44 号 FIND 和 45 号 SEARCH 的区别就一个字:大小写。FIND 严格区分大小写,SEARCH 无所谓。找字母就用 SEARCH,找符号或者固定格式就用 FIND。两个配合 MID 用,能实现「从某个词之后开始截取」。
=MID(A1,FIND("-",A1)+1,10)
46 号 CONCAT 和 47 号 TEXTJOIN 的差别,是能不能加分隔符。CONCAT 是硬拼,张三李四王五;TEXTJOIN 能加逗号,张三,李四,王五,而且还能选择跳过空白单元格,第二个参数 TRUE 的意思就是「忽略空单元格」。做名单汇总的时候太好用了。
=TEXTJOIN(",",TRUE,A1:A3)
注意:41 号 TRIM 只能去掉英文空格,去不掉全角空格和不换行符。从网页或者系统导出的数据,得用:
=TRIM(SUBSTITUTE(SUBSTITUTE(A1,CHAR(160)," "),CHAR(10),""))
六.查找引用(Excel 的分水岭)
会不会查函数,基本就是「会用 Excel」和「真的会用 Excel」的分界线。
51 VLOOKUP|按列查找,返回对应值52 HLOOKUP|按行查找,返回对应值53 LOOKUP|在一行或一列里查找对应值54 MATCH|返回某个值在区域里的位置55 INDEX|按行号、列号取值56 CHOOSE|按序号从列表里挑一个57 OFFSET|从起点偏移后返回引用58 INDIRECT|把文本变成真正的单元格引用59 COLUMN|返回单元格所在列号60 ROW|返回单元格所在行号
51 =VLOOKUP(A1,B1:C10,2,FALSE)
52 =HLOOKUP(A1,A1:F10,2,FALSE)
53 =LOOKUP(A1,A1:A10,B1:B10)
54 =MATCH(A1,A1:A10,0)
55 =INDEX(A1:C10,2,3)
56 =CHOOSE(2,"Apple","Banana","Cherry")
57 =OFFSET(A1,2,3)58 =INDIRECT("A1")59 =COLUMN(A1)60 =ROW(A1)
=VLOOKUP(找什么, 在哪片区域找, 返回第几列, 精确还是近似)
注意:VLOOKUP 报错,排查三个方向。返回 #N/A,多半是查找值两边有看不见的空格,先用 TRIM 洗一遍;返回 #REF!,是第三个参数的列号超出了查找区域;数字查不到,是一个存成了文本一个存成了数值,用 *1 或者 VALUE 统一格式。
=INDEX(返回列, MATCH(找什么, 查找列, 0))
58 号 INDIRECT 是「用文本造公式」的神器。INDIRECT("A1") 和 A1 效果一样,但前者能用拼接的方式动态改变引用位置。多表合并、跨表取值特别有用,A1 里填工作表名,这个公式就自动去对应表里取 B2。
=INDIRECT("'"&A1&"'!B2")
57 号 OFFSET 是做动态图表的核心。它能根据数据多少自动伸缩引用范围,配合下拉菜单就是动态图表。
七.日期时间(最容易算错的区域)
61 TODAY|自动显示今天日期62 NOW|显示当前日期和时间63 DATE|按年月日组合成日期64 TIME|按时分秒组合成时间65 YEAR|提取年份66 MONTH|提取月份67 DAY|提取日期68 HOUR|提取小时69 MINUTE|提取分钟70 SECOND|提取秒71 WEEKDAY|返回星期几72 WEEKNUM|返回一年中的第几周73 NETWORKDAYS|两个日期之间的工作日数量74 WORKDAY|从某天往后推几个工作日75 EDATE|按月份偏移日期76 EOMONTH|返回偏移月份的月末日期
61 =TODAY()62 =NOW()63 =DATE(2026,9,15)64 =TIME(14,30,0)65 =YEAR(A1)66 =MONTH(A1)67 =DAY(A1)68 =HOUR(A1)69 =MINUTE(A1)70 =SECOND(A1)71 =WEEKDAY(A1,2)72 =WEEKNUM(A1,2)73 =NETWORKDAYS(A1,B1,C1:C10)74 =WORKDAY(A1,5,C1:C10)75 =EDATE(A1,3)76 =EOMONTH(A1,1)
日期类最大的坑是:Excel 里日期本质是一个数字。你看到的 2026/9/15,底层其实存的是 46280,所以日期能直接相减算天数。
=B1-A1
注意:日期减日期得到的是天数,但单元格格式如果是「日期」,结果显示会变成 1900 年某个鬼日子。记得把结果单元格格式改成「常规」或「数值」。
71 号 WEEKDAY 的第二个参数一定要写 2。不写的话周一返回 2,特别反直觉。写 2 之后,周一等于 1,周日等于 7,符合我们的习惯。
=WEEKDAY(A1,2)
73 号 NETWORKDAYS 和 74 号 WORKDAY 是算项目周期、交付日期的黄金组合。
NETWORKDAYS 算「中间有多少个工作日」:=NETWORKDAYS(开始日, 结束日, 节假日列表)
WORKDAY 算「往后推 N 个工作日是哪天」:=WORKDAY(开始日, 5, 节假日列表)
这两个函数会自动跳过周末,第三个参数把法定假日列进去,它连节假日也一起跳过。做项目排期、交期承诺,比手掰日历快得多。
75 号 EDATE 和 76 号 EOMONTH 是合同、账期场景的标配。合同期 3 个月:
=EDATE(签约日,3)
只要月底:=EOMONTH(某日期,0),第二个参数写 0 就是本月月末所以算当月最后一天,一条公式就够,不管这个月是 28 天还是 31 天,它自己会算。
=EOMONTH(TODAY(),0)
八.财务函数(做投资、算贷款用得上)
77 PMT|算贷款每月要还多少78 NPV|按折现率算现金流净现值79 FV|算投资未来会变成多少钱80 PV|把未来现金流折算到现在
77 =PMT(0.05/12,60,-10000)
78 =NPV(0.05,A1:A10)
79 =FV(0.05/12,60,-100,-1000)
80 =PV(0.05/12,60,-100)
=PMT(月利率, 总期数, 贷款金额)
=PMT(0.05/12,60,-10000)
79 号 FV 是「定投计算器」。每月投 100,一开始先放 1000,年化 5%,投 5 年:
=FV(0.05/12,60,-100,-1000)
79 号 FV 和 80 号 PV 是一对反义词。FV 是「现在的钱将来值多少」,PV 是「将来的钱现在值多少」。记住这一条就不会记混。
九.新函数专区(先看版本,老版本用不了)
上面 80 个是各版本都有的老底子,闭着眼用不会错。下面这 15 组是近几年新加的,共同特点就一条:一个公式自动溢出,连下拉填充都省了。
但先看版本。Excel 2021 及以下、老版 WPS 里没有这些,需要 Office 365 或最新版 WPS 表格。公式一敲进去就报 #NAME?,基本就是版本不够。
81|一列变多列
按列排用 WRAPCOLS,按行排用 WRAPROWS,语法一模一样。
=WRAPCOLS(A2:A26,5)
=WRAPROWS(A2:A26,5)
=TOCOL(A1:E5)=TOROW(A1:E5)=TOCOL(A1:E5,3)
83|自动生成工作表目录
WPS 里一个函数搞定,Office 得靠复杂公式或者 VBA 才写得出来。
=SHEETSNAME(,1)
=REGEXP(A2,"[0-9]+")=REGEXP(A2,"[^0-9]+")=REGEXP(A2,"[一-龟]+")
85|一个单元格拆成多个
分隔符不统一也能拆。多个符号写成 {" ","-"} 的形式一起丢给它,不用先做查找替换统一符号。
=TEXTSPLIT(A1," ",CHAR(10))
=TEXTSPLIT(A1,{" ","-"},CHAR(10))
=UNIQUE(A1:A18)=UNIQUE(A1:B18)
87|不重复计数
UNIQUE 只能去重,要数个数,外面再套一层 COUNTA。两个条件不重复计数,就把区域改成两列,最后除以列数。
=COUNTA(UNIQUE(B2:B18))
=COUNTA(UNIQUE(A2:B18))/2
=SORT(F2:G4,1,-1)=SORT(区域,对第几列排序,-1为降序,1为升序)=SORT(F2:G4,2,1)
89|条件筛选,一拉到底
凭证自动生成、按条件取数都靠它。指定返回区域和条件,剩下的它自己填。
=FILTER(C2:G11,B2:B11=D14)
=FILTER(返回区域,条件区域=条件)
=XLOOKUP(E2,A:A,B:B,"")=XLOOKUP(查找值,查找区域,返回区域,错误值显示值)
91|多个结果去重后合并进一个单元格
这一串是把前面几个函数串起来了:FILTER 先筛出符合条件的,UNIQUE 去重,TEXTJOIN 再用逗号拼成一串。以前要套好几层才能实现。
=TEXTJOIN(",",1,UNIQUE(FILTER($A$2:$A$18,$B$2:$B$18=F2)))
=CHOOSECOLS(H2:L10,2)=CHOOSECOLS(区域,第几列)=CHOOSECOLS(H2:L10,2,3,1)=CHOOSECOLS(H2:L10,MATCH(A1:E1,H1:L1,0))
93|分组统计,透视表的平替
GROUPBY 是「行区域 + 值区域 + 汇总方式」,最后一个参数写 3 表示包含标题。汇总方式换成 MAX、MIN、AVERAGE 都行。行区域可以给多列,其他组合就套 HSTACK。
=GROUPBY(A1:A72,D1:D72,SUM,3)
=GROUPBY(A1:A72,D1:D72,AVERAGE,3)
=GROUPBY(A1:B72,D1:D72,SUM,3)
=GROUPBY(HSTACK(B1:B72,A1:A72),D1:D72,SUM,3)
=GROUPBY(A1:A7,B1:B7,ARRAYTOTEXT,3)
=UNIQUE(A1:B72)
=GROUPBY(F1:F7,G1:G7,ARRAYTOTEXT,3)
VSTACK 的语法跟 SUM 几乎一样,会写 SUM 就会写它。最原始的写法是一个表一个表地引用,但更常用的是下面这种连着写的办法。
=VSTACK('01.现金'!A2:E11,'02.银行'!A2:E12,'03.微信'!A2:E11,'04.支付宝'!A2:E10)
=VSTACK(区域1,区域2,区域3,区域4)
=VSTACK('01.现金:04.支付宝'!A2:E12)
=VSTACK('开始表格名称:结束表格名称'!区域)
=VSTACK('01.现金:04.支付宝'!A2:E120)
=FILTER(A2:E999,E2:E999<>0)
=FILTER(VSTACK('01.现金:04.支付宝'!A2:E120),VSTACK('01.现金:04.支付宝'!E2:E120)<>0)
PIVOTBY 大概是参数最多的函数,一共 11 个,常用的就是前 5 个。跟 GROUPBY 比,它多了一个列区域。列区域用不上就用逗号占位。
=PIVOTBY(行区域,列区域,值区域,汇总方式,是否包含标题)
=PIVOTBY(A1:A11,,D1:D11,SUM,3)
=PIVOTBY(A1:B11,,D1:D11,SUM,3)
=PIVOTBY(A1:A11,B1:B11,D1:D11,SUM,3)
=PIVOTBY(A1:A11,B1:B11,D1:D11,SUM)
=PIVOTBY(A1:A11&C1:C11,,B1:B11,ARRAYTOTEXT,3)=PIVOTBY(HSTACK(A1:A11,C1:C11),,B1:B11,ARRAYTOTEXT,3)=PIVOTBY(A1:A11,C1:C11,B1:B11,ARRAYTOTEXT,3)=PIVOTBY(A2:A11,C2:C11,B2:B11,ARRAYTOTEXT,0,0,,0,,,0)
最后怎么学?
第一,别按顺序学,按场景学。你这周要做什么表,就先把那一类的函数吃透。做过一遍的公式,比看十遍教程记得牢。
第二,先掌握这五个,能覆盖你 80% 的需求:
3 SUMIFS 多条件汇总51 VLOOKUP 跨表查找31 + 32 IF + IFERROR 逻辑判断和容错47 TEXTJOIN 文本拼接76 EOMONTH 日期计算
第三,公式写完一定要用 F9 验算。选中公式里的一段,按 F9 立刻看到它的计算结果,检查完按 Esc 退出。这是排查公式最有效的方法,比一行一行猜快得多。
最后多提一句:81—95 号那些新函数虽然香,别急着往公司老电脑上招呼。先确认同事能不能打开。版本不够的话,你的表发过去满屏都是 #NAME?,返工更费时间。1—80 号的老函数,照样能把活干完。
函数这东西,从来不是背出来的,是用出来的。今天翻到这儿,明天做表遇到问题回来看一眼,用不了几次就成你自己的了。
学了这些,早做完,不加班。
上篇:投了36份简历只回1家,我用WorkBuddy的免费积分重做了一遍

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

请把「Excel不加班」推荐给你的朋友
别忘了点赞支持卢子哦↓↓↓