摘要:最近和100+位职场人交流Excel/WPS使用痛点,发现超80%的人还在用VLOOKUP、SUMIF等“老古董”函数,却不知道新版本早已内置了一键去重、智能合并、动态分组等“神仙功能”!今天就把压箱底的30个新公式全盘托出,从字符串处理到复杂统计,覆盖90%
告别繁琐操作,这些新函数让你的数据处理速度提升10倍!
最近和100+位职场人交流Excel/WPS使用痛点,发现超80%的人还在用VLOOKUP、SUMIF等“老古董”函数,却不知道新版本早已内置了一键去重、智能合并、动态分组等“神仙功能”!今天就把压箱底的30个新公式全盘托出,从字符串处理到复杂统计,覆盖90%日常办公场景,建议先点赞收藏,边看边练效果更佳!
一、字符串处理类(8大核心公式)
1. UNIQUE:一键提取不重复值(去重神器)
语法:=UNIQUE(数组或范围,[是否忽略空值],[是否按行匹配])
场景:整理客户名单时,快速剔除重复联系人。
示例:
原始数据:A列是“张三,张三,李四,王五,李四”公式:=UNIQUE(A2:A6)结果:返回“张三,李四,王五”(自动跳过空白,按行去重)。注意:若需保留空值,第三个参数设为TRUE;WPS需2023及以上版本支持。
2. TEXTJOIN:自定义分隔符合并多单元格(告别“&”噩梦)
语法:=TEXTJOIN(分隔符,是否忽略空值,文本1,[文本2],...)
场景:将A列姓名和B列电话合并为“张三-13812345678”。
示例:
公式:=TEXTJOIN("-",TRUE,A2,B2)结果:“张三-13812345678”(自动跳过空电话)。进阶:合并整列数据时,用A2:A100代替单个单元格,公式自动溢出。
3. TEXTSPLIT:智能拆分字符串(多列/多行自由选)
语法:=TEXTSPLIT(文本,列分隔符,[行分隔符],[是否忽略空值])
场景:拆分“2024-08-31 销售部 张三”为日期、部门、姓名三列。
示例:
公式:=TEXTSPLIT(A2," ",,TRUE)(第一个空格拆列,无行分隔符)结果:B2=“2024-08-31”,C2=“销售部”,D2=“张三”。高阶玩法:用TEXTSPLIT(A2,{"-"," "})同时按“-”和“ ”拆分成多列(适用于复杂分隔符)。
4. TEXTBEFORE/TEXTAFTER:精准提取分隔符前后内容(比LEFT/RIGHT更智能)
TEXTBEFORE(文本,分隔符,[出现次数],[是否区分大小写])(提取分隔符前内容)TEXTAFTER(文本,分隔符,[出现次数],[是否区分大小写])(提取分隔符后内容)场景:从“订单号:DD20240831-001”中提取“DD20240831”和“001”。
示例:
提取前缀:=TEXTBEFORE(A2,"-") → “订单号:DD20240831”(需调整分隔符为“-”)提取后缀:=TEXTAFTER(A2,"-") → “001”(更精准)。注意:若文本无分隔符,公式返回错误值,可搭配IFERROR容错:=IFERROR(TEXTBEFORE(A2,"-"),"无分隔符")。
5. CONCAT/CONCATENATE:合并字符串(新旧版本兼容)
语法:=CONCAT(文本1,[文本2],...) 或 =CONCATENATE(文本1,[文本2],...)
场景:将A列“产品A”、B列“红色”、C列“L码”合并为“产品A-红色-L码”。
示例:
公式:=CONCAT(A2,"-",B2,"-",C2)结果:“产品A-红色-L码”(比&更直观)。区别:CONCAT支持数组输入(如A2:A10),CONCATENATE仅支持单个单元格。
6. ARRAYTOTEXT:带格式合并(保留逗号/分号分隔)
语法:=ARRAYTOTEXT(数组,[分隔符类型])(分隔符类型:0=逗号,1=分号)
场景:将A列“苹果,香蕉,橘子”合并为带千位分隔符的字符串(如“苹果, 香蕉, 橘子”)。
公式:=ARRAYTOTEXT(A2:A4,0)结果:“苹果, 香蕉, 橘子”(自动添加空格分隔)。语法:=REGEXP(文本,正则表达式,[匹配模式])
场景:从“电话:138-1234-5678”中提取纯数字“13812345678”。
示例:
公式:=REGEXP(A2,"\d+")(\d匹配数字,+表示至少1次)结果:“13812345678”(自动过滤非数字字符)。进阶:用"\d{3}-\d{4}-\d{4}"验证手机号格式是否正确(返回TRUE/FALSE)。
8. TRIM+TEXTSPLIT:批量清理多余空格(数据清洗必备)
场景:原始数据中“ 张 三 ”(前后/中间有多余空格),需清理为“张三”。
示例:
公式:=TRIM(TEXTSPLIT(A2," "))(先按空格拆分,再用TRIM去空格)结果:“张三”(彻底清除所有多余空格)。二、数据提取与筛选类(7大核心公式)
9. FILTER:智能筛选符合条件的行(替代高级筛选)
语法:=FILTER(数组,条件,[无匹配时的返回值])
场景:筛选A列“地区=华东”且B列“销售额>10万”的订单。
示例:
公式:=FILTER(A2:C10,(A2:A10="华东")*(B2:B10>100000),"无符合条件的数据")结果:仅返回满足双条件的行(*表示“且”,+表示“或”)。注意:条件需用括号包裹,支持通配符*(任意字符)和?(单个字符)。
10. SORT/SORTBY:动态排序(按单/多列排序)
语法:
SORT(数组,排序列号,[升序/降序])(按列号排序)SORTBY(数组,排序依据列1,[升序/降序1],[排序依据列2],[升序/降序2],...)(按多列排序)场景:对销售表按“地区(升序)→销售额(降序)”排序。
示例:
公式:=SORTBY(A2:C10,A2:A10,1,B2:B10,-1)(1=升序,-1=降序)结果:先按地区A-Z排列,同地区内销售额从高到低。11. TAKE/DROP:精准截取数据(前N行/后N行)
TAKE(数组,行数,[列数])(从顶部取行数)DROP(数组,行数,[列数])(从底部取行数,负数表示从顶部/底部删除)场景:提取2024年1-10月的销售数据(原数据1-12月)。
示例:
公式:=TAKE(A1:D13,10,4)(取前10行,4列)公式:=DROP(A1:D13,-2,4)(删除最后2行,取前10行)。12. CHOOSECOLS/HSTACK:按列筛选/横向合并(替代VLOOKUP)
语法:
CHOOSECOLS(数组,列号1,[列号2],...)(选择指定列)HSTACK(数组1,数组2,...)(横向合并数组)场景:从订单表中提取“订单号、客户、金额”三列,并合并客户等级列。
示例:
提取列:=CHOOSECOLS(A2:D10,1,2,4)(取第1、2、4列)合并列:=HSTACK(CHOOSECOLS(A2:D10,1,2),E2:E10)(E列是客户等级)。13. TOCOL/WRAPROWS:行列转换(一维/二维互转)
TOCOL(数组,[列号],[是否忽略空值])(多行多列转一列)WRAPROWS(数组,列数,[填充值])(一列转多列)场景:将A列“产品A,产品B,产品C,...”转为3列多行(每列3个产品)。
示例:
转一列:=TOCOL(A2:A20)(将A2到A20转为一列)转多列:=WRAPROWS(A2:A10,3,"")(转3列,空缺处填空)。14. SEQUENCE:批量生成序号(替代ROW函数)
语法:=SEQUENCE(行数,[列数],[起始值],[步长])
场景:生成1-100的序号,或按部门分组生成序号(如销售部1-10,技术部11-20)。
示例:
基础序号:=SEQUENCE(100)(生成1-100的单列序号)分组序号:=SEQUENCE(COUNTUNIQUE(B2:B100),,SUMIF(B$2:B2,B2,ROW(B$2:B2))-MIN(ROW(B$2:B2))+1)(需结合COUNTUNIQUE)。15. DROP+UNIQUE:动态去重并删除首行(数据清洗组合拳)
场景:原始数据首行是标题,需删除首行后提取不重复值。
示例:
公式:=DROP(UNIQUE(A2:A100),0)(先去重,再删除0行,即保留所有)若需删除首行后再去重:=UNIQUE(DROP(A2:A100,1))。三、表格操作与重构类(6大核心公式)
16. VSTACK:纵向合并表格(替代复制粘贴)
语法:=VSTACK(数组1,数组2,...)
场景:合并1月、2月销售表(均有“日期、产品、销售额”三列)。
示例:
公式:=VSTACK(1月销售数据,2月销售数据)(自动对齐列,合并为完整表格)。注意:合并的表格列数需一致,否则报错。
17. GROUPBY:分组汇总(替代数据透视表)
语法:=GROUPBY(行字段,值字段,聚合函数,[是否包含标题])
场景:按“地区”分组,统计“销售额”的总和、平均值。
示例:
总和:=GROUPBY(A2:A10,B2:B10,SUM,TRUE)(A列是地区,B列是销售额,含标题)多函数:=GROUPBY(A2:A10,B2:B10,LAMBDA(x,SUM(x)&"|"&AVERAGE(x)),TRUE)(用LAMBDA自定义聚合)。18. BYROW:按行计算(替代数组公式)
语法:=BYROW(数组,行函数)(对每一行应用函数)
场景:计算每行“销售额-成本”的利润。
示例:
公式:=BYROW(A2:B10,LAMBDA(row,COLUMN(B1)*row[1]-COLUMN(C1)*row[2]))(假设A=数量,B=单价,C=成本)简化版:=BYROW(A2:B10,LAMBDA(r,r[1]*r[2]))(r是当前行,r[1]是第一列,r[2]是第二列)。19. REDUCE:复杂累加计算(替代SUMIFS)
语法:=REDUCE(初始值,数组,累加函数)
场景:计算“销售额>10万”的总金额(需多条件筛选)。
示例:
公式:=REDUCE(0,A2:B10,LAMBDA(acc,row,IF(row[2]>100000,acc+row[2],acc)))(acc是累加值,row是当前行)。20. WRAPCOLS:一列转多列(按行填充)
语法:=WRAPCOLS(数组,列数,[填充值])(与WRAPROWS按列填充相反)
场景:将A列“产品A,产品B,产品C,...”转为2列多行(每列5个产品)。
示例:=WRAPCOLS(A2:A20,2,"")(转2列,空缺处填空)。
21. UNSTACK:逆透视表格(将宽表转长表)
语法:=UNSTACK(数组,行字段,列字段)(需配合FILTERXML或LAMBDA使用,WPS暂不支持)
场景:将“产品A-1月,产品A-2月,产品B-1月...”宽表转为“产品,月份,销售额”长表。
示例:
公式:=LET(tbl,A2:C10,UNSTACK(tbl,INDEX(tbl,,1),INDEX(tbl,,2)))(需Excel 365最新版)。四、数据统计与计算类(9大核心公式)
22. COUNTA(UNIQUE):统计不重复值个数(替代高级筛选计数)
语法:=COUNTA(UNIQUE(数组))
场景:统计A列“客户姓名”的不重复数量。
示例:=COUNTA(UNIQUE(A2:A100))(直接返回唯一客户数)。
23. SUMIFS+FILTER:多条件求和(更灵活)
语法:=SUM(FILTER(值区域,条件1*条件2))(替代SUMIFS(值区域,条件区域1,条件1,条件区域2,条件2))
场景:计算“地区=华东”且“月份=8月”的销售额总和。
示例:=SUM(FILTER(B2:B100,(A2:A100="华东")*(C2:C100=8)))(更简洁)。
24. AVERAGEIF+UNIQUE:统计唯一值的平均(去重后计算)
语法:=AVERAGEIF(UNIQUE(数组),">100")(统计唯一值中大于100的平均值)
场景:计算A列“产品评分”的唯一值的平均分(剔除重复评分)。
示例:=AVERAGE(UNIQUE(FILTER(A2:A100,A2:A100"")))(先去重,再排除空值,最后求平均)。
25. MAXIFS+SORT:动态找最大值(实时更新)
语法:=MAX(SORT(FILTER(值区域,条件),1,-1))(筛选后排序取最大)
场景:找“地区=华南”的最高销售额。
示例:=MAX(FILTER(B2:B100,A2:A100="华南"))(直接用MAXIFS更简单,=MAXIFS(B2:B100,A2:A100,"华南"))。
26. LAMBDA:自定义函数(替代复杂公式)
语法:=LAMBDA(参数1,参数2,...,计算式)(可保存为名称重复使用)
场景:定义“利润=销售额×0.85-成本”的自定义函数。
示例:
新建名称“利润计算”,引用位置:=LAMBDA(销售额,成本,销售额*0.85-成本)使用:=利润计算(B2,C2)(输入参数即可计算)。27. MAP:批量处理数组(替代数组公式)
语法:=MAP(数组1,数组2,...,映射函数)(对多个数组逐元素处理)
场景:将A列“销售额”和B列“成本”合并为“利润=销售额-成本”。
示例:=MAP(A2:A10,B2:B10,LAMBDA(s,c,s-c))(逐行计算利润)。
28. REDUCE+HSTACK:动态生成汇总表(高级统计)
场景:统计各地区、各月份的销售额总和。
示例:
公式:=REDUCE(HSTACK("地区","月份","总销售额"),UNIQUE(A2:A10),LAMBDA(acc,region,HSTACK(acc,REDUCE(HSTACK(region,UNIQUE(FILTER(B2:B10,A2:A10=region))),UNIQUE(FILTER(B2:B10,A2:A10=region)),LAMBDA(acc2,month,HSTACK(acc2,month,SUM(FILTER(C2:C10,(A2:A10=region)*(B2:B10=month))))))))(需Excel 365最新版)。29. ISERROR+IFERROR:容错处理(避免#N/A报错)
语法:=IFERROR(公式,"无数据")(公式报错时显示指定内容)
场景:用VLOOKUP查找不存在的客户时,显示“未找到”。
示例:=IFERROR(VLOOKUP(D2,A2:B10,2,0),"未找到")(更安全)。
30. TEXTSPLIT+FILTER:动态多条件拆分(复杂清洗)
场景:从“订单号-产品-数量”中提取“产品=手机”的订单,并拆分数量。
示例:
公式:=FILTER(TEXTSPLIT(A2:A10,"-"),TEXTSPLIT(A2:A10,"-",2)="手机")(先拆分,再筛选产品列)。千万别学excel实用提示(必看!)
版本要求:大部分函数需Excel 365/2021或WPS 2023及以上版本(旧版本会显示#NAME?);动态数组:新公式默认自动溢出(结果填充到相邻单元格),无需下拉填充;参数技巧:区域可以是具体单元格(如A2:A10),也可以是表格名称(如订单表);性能优化:避免在超大数据集(10万行+)中使用复杂嵌套公式,可能导致卡顿;WPS专属:REGEXP(正则提取)、EVALUATE(计算文本表达式)为WPS特有函数,Excel需安装插件或使用其他方法。实战测试题(检验学习成果!)
如何用TEXTSPLIT和INDEX从“2024-08-31 销售部 张三”中提取“销售部”?用FILTER和SORTBY筛选“销售额>5万”且“地区=华北”的数据,并按“销售额降序”排列。如何用HSTACK和VSTACK合并1月、2月销售表(含标题),并添加“季度”列?测试题答案
公式:=INDEX(TEXTSPLIT(A2," "),2)(拆分后取第2列)。公式:=SORTBY(FILTER(A2:C10,(B2:B10>50000)*(A2:A10="华北")),C2:C10,-1)(先筛选,再按第3列降序排序)。合并表格:=VSTACK(1月销售表,2月销售表);添加季度列:=HSTACK(合并后的表格,IF(ROW(合并后的表格)来源:千万别学Excel