30个Excel/WPS新公式实战大全,效率翻倍不是梦!

B站影视 内地电影 2025-08-31 18:59 2

摘要:最近和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

相关推荐