WPS表格这些新函数太强了!Excel用户看了都眼红
作者:本站 来源:本站
2026-04-30 08:33 649阅读

效率翻倍的秘密,就藏在这些公式里。

导读:如果你还认为WPS只是Excel的“平替”,那可能已经落后了。近两年WPS表格的更新堪称激进,不仅补齐了Excel的明星函数,更推出了一批Excel根本没有的独家硬核工具。本文从真实工作场景切入,盘点十大改变工作流的WPS新函数,看完你可能会重新认识这个国产办公软件。
01 数据透视革命:PIVOTBY
传统数据透视表需要手动拖拽字段,更新数据要点刷新。PIVOTBY将这些操作全部公式化,实现动态交叉汇总。
核心优势:公式驱动,源数据变更自动更新,可直接嵌套在其他公式中使用。
应用场景:
- 月度销售报表:行是产品类型,列是大区,值是销售额汇总
- 项目进度看板:行是责任人,列是周次,值是任务完成率
- 财务对比分析:行是科目,列是年度,值是金额及同比变化
公式示例:
=PIVOTBY($B$2:$B$100, $C$2:$C$100, $D$2:$D$100, SUM, 3)
此公式以B列为行字段(如产品)、C列为列字段(如地区)、D列为值字段求和,末尾的“3”表示输出包含总计的完整交叉表。
升级技巧:结合LET函数命名数据区域,让复杂透视公式更可读:
=LET(产品,$B$2:$B$100, 地区,$C$2:$C$100, 销量,$D$2:$D$100,
PIVOTBY(产品,地区,销量,SUM,3))
02 智能分类汇总:GROUPBY
当不需要行列交叉,只需按一个或多个维度分类聚合时,GROUPBY比PIVOTBY更简洁高效。
核心优势:专为层级汇总优化,避免透视表的过度设计,公式更简洁。
应用场景:
- 按部门统计费用:部门>科目>金额汇总
- 按客户分析订单:客户>产品类别>订单数及金额
- 按时间维度聚合:年>季度>月>指标值
公式示例:
=GROUPBY($A$2:$B$100, $C$2:$D$100, SUM, 3)
以A、B两列为分组维度(如“年月”和“部门”),对C、D两列数值(如“收入”和“成本”)分别求和。
隐藏用法:GROUPBY的第三个参数支持自定义聚合函数。如统计各部门销售额的最大值:
=GROUPBY(部门区域, 销售额区域, LAMBDA(arr, MAX(arr)), 3)
03 文本处理核武器:REGEXP(WPS独占)
这是当前WPS对Excel形成明显优势的领域。正则表达式加持下的文本提取,解决了过去需要复杂嵌套或VBA才能处理的问题。
核心优势:用模式匹配替代具体字符匹配,灵活度指数级提升,Excel暂无原生支持。
高阶应用场景:
- 从杂乱地址中提取省市区:=REGEXP(A1,"^(.{2,3}?[省市])")
- 提取标准手机号:=REGEXP(A1,"1[3-9]\d{9}")
- 提取带区号的电话:=REGEXP(A1,"0\d{2,3}-\d{7,8}")
- 分离中英文混合内容:=REGEXP(A1,"[\u4e00-\u9fa5]+")(纯中文)
- 验证邮箱格式:=REGEXP(A1,"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}$")
- 提取特定格式编码:如“PROD-2024-00123”中的数字部分=REGEXP(A1,"(?<=PROD-)\d+")
实战技巧:REGEXP与SPLIT结合,一次性拆分复杂字符串:
=TEXTSPLIT(A1, REGEXP(A1,"[^\u4e00-\u9fa5A-Za-z0-9]"))
此公式将非中文字符、非字母数字的符号全部作为分隔符拆分文本。
04 查找函数终极体:XLOOKUP
虽然Excel也有XLOOKUP,但WPS的版本同样成熟稳定,且与WPS独家函数结合更顺畅。
核心优势:无需指定返回列序号,支持反向查找、多条件查找、通配符匹配、近似匹配和从后向前查找。
高级应用:
- 多对多查找(返回数组):=XLOOKUP(F1:F3, A:A, B:D) 可一次返回多列结果
- 双向矩阵查找:=XLOOKUP(行查找值, 行区域, XLOOKUP(列查找值, 列区域, 矩阵区域))
- 容错查找:=XLOOKUP(查找值, 查找区域, 返回区域, "未找到", 0, 1)
性能提示:对已排序数据使用二分查找加速,将第6个参数设为2:
=XLOOKUP(查找值, 排序区域, 返回区域, , 2)
05 动态筛选器:FILTER
告别每调整一次条件就要重做一次筛选的痛苦,FILTER让筛选结果实时响应条件变化。
核心优势:输出动态数组,条件变更立即刷新,可直接作为数据源供其他公式引用。
复杂条件构建:
- 多条件“或”关系:=FILTER(数据区域, (条件1)+(条件2))
- 条件为公式结果:=FILTER(数据区域, MONTH(日期列)=4) 筛选4月数据
- 排除特定项:=FILTER(数据区域, (条件区域<>"排除值"))
- 基于另一表条件筛选:=FILTER(表1数据, COUNTIF(表2!条件区域, 表1!条件列))
组合技巧:FILTER+SORT一步到位输出排序后的筛选结果:
=SORT(FILTER(数据区域, 条件), 返回列序号, 排序方式)
06 表格拼接神器:VSTACK / HSTACK
多表合并是数据整理中最耗时的环节之一,这两个函数将复杂操作简化到一个公式。
核心优势:支持跨工作表、跨工作簿合并,保持数据动态链接。
高级用法:
- 选择性合并奇偶行:=VSTACK(FILTER(表1, MOD(ROW(表1),2)=1), FILTER(表2, MOD(ROW(表2),2)=0))
- 三维数据堆叠:=VSTACK(表1, 表2, 表3, 表4) 将季度表合并为年度表
- 动态范围合并:=VSTACK(INDIRECT("'"&工作表列表&"'!A1:C10"))
注意事项:使用VSTACK时,确保各表列结构一致;使用HSTACK时,确保行数一致。可用IFERROR处理缺失值:
=VSTACK(表1, IFERROR(表2, ""), IFERROR(表3, ""))
07 智能连接:TEXTJOIN
比&连接符更强大,特别适合处理含空值、需添加分隔符的批量连接。
核心优势:自动跳过空单元格,支持数组作为参数,可生成带格式的连接结果。
创意用法:
- 生成SQL查询条件:="WHERE id IN ("&TEXTJOIN(",",TRUE,UNIQUE(id列))&")"
- 创建多值下拉提示:=TEXTJOIN(CHAR(10), TRUE, FILTER(项目列, 条件)) 用Alt+10换行符隔开
- 批量添加前缀后缀:=TEXTJOIN("", FALSE, "前缀-", A1:A10, "-后缀")
与FILTER结合:只连接满足条件的项目:
=TEXTJOIN(",", TRUE, FILTER(名称列, 条件列="条件"))
08 专业拆分:TEXTSPLIT
传统“分列”功能的一次性操作被公式化,实现动态拆分,源数据变更拆分结果自动更新。
核心优势:支持多分隔符、按行或列拆分、处理复杂文本结构。
复杂场景:
- 拆分JSON字符串:=TEXTSPLIT(A1, "{""", """:""", """,""")
- 分离姓名和工号:=TEXTSPLIT(A1, {" ","("}, {")"})
- 多级拆分地址:=TEXTSPLIT(A1, {"省","市","区","街道"})
错误处理:当拆分结果列数不一致时,用IFERROR填充默认值:
=IFERROR(TEXTSPLIT(A1:A10, "-"), "无数据")
09 批量净化:SUBSTITUTES
与SUBSTITUTE的单次替换不同,SUBSTITUTES支持批量、多对多替换,是数据清洗的利器。
核心优势:一次清除多种干扰字符,支持数组作为查找和替换值。
实战应用:
- 数据脱敏:=SUBSTITUTES(手机号列, {3,4,5,6,7,8,9}, "*") 保留前3位
- 统一日期格式:=SUBSTITUTES(日期文本, {"/","年","月","日"}, {"-","-","-",""})
- 清理不可见字符:=SUBSTITUTES(A1:A100, CHAR({1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}), "")
- 敏感词过滤:=SUBSTITUTES(评论文本, 敏感词列表, "**")
与TRIM结合:彻底清理空格和特殊字符:
=TRIM(SUBSTITUTES(A1, CHAR(160), " ")) # 替换网页常见的不间断空格
10 智能去重:UNIQUE
虽然菜单有去重功能,但公式化的UNIQUE可实时更新,并作为中间结果参与后续计算。
核心优势:动态数组输出,源数据增减,唯一值列表自动更新。
扩展应用:
- 提取唯一值并排序:=SORT(UNIQUE(A:A))
- 统计唯一值数量:=COUNTA(UNIQUE(A:A))
- 提取两列差异项:=UNIQUE(VSTACK(表1!A:A, 表2!A:A), , TRUE) 最后一个参数TRUE表示只返回出现一次的值
- 生成动态下拉菜单源:直接引用=UNIQUE(数据源)作为数据验证序列
性能优化:对已排序数据使用UNIQUE的快速模式(WPS特有优化):
=UNIQUE(排序后区域, , , TRUE) # 最后一个参数TRUE启用快速去重
特别提示:WPS函数生态优势
除了上述函数,WPS还有一些独家或优化更好的函数值得关注:
- EVALUATE函数:在名称管理器中定义后可计算文本公式,实现“公式中的公式”
- SHEETSNAME函数:获取当前工作簿所有工作表名称,动态生成跨表引用地址
- WORKDAY.INTL增强:支持更复杂的自定义周末模式
- 中文函数名支持:可直接使用“求和”、“查找”等中文函数名,降低学习成本
这些函数的共同特点是降低公式嵌套复杂度,用单个函数解决过去需要多个函数组合才能解决的问题,显著提升公式可读性和维护性。
WPS表格正在走一条“兼容并超越”的道路:对Excel优秀函数快速跟进,在文本处理、数据清洗等场景开发独家功能,在易用性上做深度优化。对于需要处理复杂业务数据但不想写VBA的用户,这些新函数提供了更轻量、更高效的解决方案。
附图文教程





















知识测试
- 你需要从包含中文、英文、数字和符号的混合文本中,提取出所有标准格式的电子邮件地址(如abc@example.com),下列哪个函数组合最直接有效? A. FIND + MID B. REGEXP C. TEXTSPLIT D. SUBSTITUTES
- 你有一个每月更新的销售明细表,希望创建一个动态的汇总报表,当新增月份数据时,报表能自动将该月数据纳入“年度累计”计算,无需手动调整公式范围。下列哪种函数方案最能满足此需求? A. 使用SUMIFS函数,并手动将求和范围扩展到新月份列 B. 为每个月份数据定义名称,在SUM中使用INDIRECT引用这些名称 C. 使用GROUPBY函数,其第一个参数引用整个日期列,自动包含新数据 D. 使用VSTACK将1月至12月的数据区域堆叠,再对堆叠后的结果进行SUM
- 财务部门提供了一张费用明细表,其中“摘要”列混杂了部门、项目、事项等信息。你需要快速统计“研发部”在“A项目”下的所有“差旅费”总额,且后续明细增加时统计结果自动更新。效率最高的方法是: A. 使用筛选功能手动筛选出符合条件的数据行,然后对“金额”列求和 B. 使用SUMIFS函数,设置三个条件分别对应摘要列中包含“研发部”、“A项目”、“差旅费” C. 使用FILTER函数,设置条件为:摘要列同时包含三个关键词,再对结果用SUM求和 D. 插入数据透视表,将摘要列拖入“行”,金额拖入“值”,然后筛选行标签
测试题答案:
- B (REGEXP函数可以通过正则表达式[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}直接匹配并提取电子邮件地址)
- C (GROUPBY函数引用整列(如A:A)作为参数时,会自动包含该列所有现有及未来新增的数据,实现真正的动态汇总。VSTACK方案(D)需要明确指定范围,无法自动扩展。)
- C (使用=SUM(FILTER(金额列, ISNUMBER(FIND("研发部",摘要列))*ISNUMBER(FIND("A项目",摘要列))*ISNUMBER(FIND("差旅费",摘要列)))),一个公式实现动态筛选与求和,条件变化或数据增加时自动更新,效率最高。SUMIFS(B)无法直接处理“包含”关系,除非使用通配符"*研发部*A项目*差旅费*",但此方式不够精确,若顺序或中间内容变化则可能失效。)
(挥一挥衣袖,不带走一片☁️)
上一篇
下一篇
相关阅读