更新时间:作者:小小条
掌握它们,你将重新定义什么是表格数据处理
过去两年,微软和WPS相继发布了一批堪称“颠覆性”的新函数。今天,我系统梳理了20个必学的新函数,并加入大量独家应用场景和组合技巧。这不仅是函数列表,更是一份从“表格操作员”晋升为“数据架构师”的思维导图。

一、数据生成与编排:告别手工,一键生成
1. SEQUENCE函数 - 序列生成的终极方案
=SEQUENCE(行数,[列数],[起始值],[步长])
核心应用扩展:
动态序号:=SEQUENCE(COUNTA(A:A)-1) 自动根据数据行数生成序号制作日历:=SEQUENCE(6,7,开始日期) 一键生成整月日历模板二维转换:=SEQUENCE(行数,列数) 轻松实现一维转二维布局组合技巧:与日期函数结合,可生成动态的季度报表时间轴。
2. RANDARRAY函数 - 随机数据生成器
=RANDARRAY([行数],[列数],[最小值],[最大值],[整数标志])
核心应用扩展:
随机抽奖:=INDEX(名单,RANDARRAY(获奖人数,1,1,总人数,TRUE))模拟数据:=RANDARRAY(100,5,1000,10000,0) 生成100行5列的模拟销售数据随机排序:=SORTBY(原数据,RANDARRAY(行数)) 彻底打乱数据顺序3. CHOOSECOLS / CHOOSEROWS - 精准行列提取器
=CHOOSECOLS(数组,列号1,[列号2],...)=CHOOSEROWS(数组,行号1,[行号2],...)
解决三大痛点:
反向查询替代VLOOKUP:=CHOOSECOLS(FILTER(数据区域,条件),2,1) 先筛选,再调整列顺序隔列求和:=SUM(CHOOSECOLS(数据区域,1,3,5,7,...)) 提取奇数列求和动态报表:=CHOOSECOLS(原始表,{1,3,5}) 创建精简版动态报表二、表格合并与截取:多表操作,一劳永逸
4. HSTACK / VSTACK - 表格拼接一体化
=HSTACK(区域1,[区域2],...) // 横向拼接=VSTACK(区域1,[区域2],...) // 纵向堆叠
革命性突破:
多表查询替代方案:=VSTACK(一月!A:C, 二月!A:C, 三月!A:C) 将多个月份表合并分析动态看板:=HSTACK(销售表!A:D, 利润表!E:G) 横向拼接不同模块错误处理增强:=VSTACK(表1, IFERROR(表2, ""), 表3) 智能处理空表5. TAKE函数 - 精准截取工具
=TAKE(数组,行数,[列数])
高级用法:
提取前N名:=TAKE(SORT(数据,排序列,-1), 10) 获取TOP10数据获取最新记录:=TAKE(SORTBY(数据,日期列,-1), 5) 获取最近5条动态尾部:=TAKE(数据, -5) 负数表示从末尾提取6. TOCOL / TOROW - 维度转换标准工具
=TOCOL(数组,[忽略参数],[按列扫描])=TOROW(数组,[忽略参数],[按列扫描])
深度应用:
多列转一列:=TOCOL(A1:C100,,TRUE) 将3列100行转为300行1列忽略空值:=TOCOL(数据,1) 自动跳过所有空单元格条件转换:=TOCOL(FILTER(数据,条件)) 先筛选再转换,一气呵成三、数据分析与汇总:公式版的数据透视表
7. GROUPBY函数 - 实时分组统计器
=GROUPBY(行字段,值字段,计算函数,[标题],[总计])
实战对比:
传统方法:数据透视表 + 刷新操作
新方法:=GROUPBY(部门,销售额,SUM,,1) 实时更新,随源数据变化
高级应用:
多条件统计:=GROUPBY(HSTACK(部门,产品),销售额,SUM) 双维度分组多指标统计:=GROUPBY(部门, HSTACK(销售额,成本), HSTACK(SUM,AVERAGE))动态排序:=SORT(GROUPBY(部门,销售额,SUM),2,-1) 分组后直接排序8. PIVOTBY函数 - 双向透视分析器
=PIVOTBY(行字段,列字段,值字段,计算函数,[标题],[排序],[筛选])
革命性功能:
双维度透视:=PIVOTBY(部门,月份,销售额,SUM) 类似数据透视表的行列结构多层嵌套:=PIVOTBY(HSTACK(大区,城市), 产品线, 销售额, SUM)动态筛选:结合FILTER函数,创建完全动态的透视报表四、文本处理:正则表达式与智能拆分
9. TEXTSPLIT函数 - 智能拆分替代“分列”
=TEXTSPLIT(文本,列分隔符,[行分隔符],[是否忽略空],[匹配模式],[填充值])
超越“分列”功能:
多分隔符:=TEXTSPLIT(A1, {"-",":","|"}) 同时按多种符号拆分保留原格式:拆分后仍保持公式动态更新,而“分列”是静态操作组合应用:=TEXTSPLIT(TEXTJOIN(",",,A1:A10), ",") 先合并再拆分,实现转置10. TEXTBEFORE / TEXTAFTER - 定位提取黄金组合
=TEXTBEFORE(文本,分隔符,[出现次数],[未找到时返回值])=TEXTAFTER(文本,分隔符,[出现次数],[未找到时返回值])
经典场景:
提取文件名:=TEXTBEFORE(A1, ".") 获取不带扩展名的文件名分离姓名:=TEXTBEFORE(姓名, " ") 提取名,=TEXTAFTER(姓名, " ") 提取姓解析路径:=TEXTAFTER(TEXTAFTER(路径, "/", 3), "/") 提取路径中特定部分11. REGEXEXTRACT函数 - 正则表达式提取(WPS独有,Excel需插件)
=REGEXEXTRACT(文本,正则表达式,[组号])
降维打击传统提取:
提取手机号:=REGEXEXTRACT(A1, "1[3-9]\d{9}")提取邮箱:=REGEXEXTRACT(A1, "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}")复杂模式:=REGEXEXTRACT(文本, "订单号[::]\s*([A-Z]{2}\d{6})") 提取特定格式订单号五、函数式编程:从“使用函数”到“创造函数”
12. LET函数 - 公式内部的“变量定义器”
=LET(名称1,值1, [名称2,值2], ..., 计算)
革命性意义:
复杂公式简化前:
=IF(VLOOKUP(A2,数据!A:B,2,FALSE)>1000, "高", IF(VLOOKUP(A2,数据!A:B,2,FALSE)>500, "中", "低"))
简化后:
=LET( 查找值, VLOOKUP(A2,数据!A:B,2,FALSE), IF(查找值>1000, "高", IF(查找值>500, "中", "低")))
三大优势:
性能提升:重复计算只执行一次可读性增强:复杂公式模块化易维护:修改只需改一处13. LAMBDA函数 - 自定义函数的基石
=LAMBDA(参数1,参数2,..., 计算)
从使用者到创造者:
创建个人所得税计算函数:
=LAMBDA(工资, LET( 免征额, 5000, 应纳税所得额, MAX(工资-免征额, 0), 税率, IFS(应纳税所得额<=3000, 0.03, 应纳税所得额<=12000, 0.1, 应纳税所得额<=25000, 0.2, 应纳税所得额<=35000, 0.25, 应纳税所得额<=55000, 0.3, 应纳税所得额<=80000, 0.35, TRUE, 0.45), 速算扣除数, IFS(应纳税所得额<=3000, 0, 应纳税所得额<=12000, 210, 应纳税所得额<=25000, 1410, 应纳税所得额<=35000, 2660, 应纳税所得额<=55000, 4410, 应纳税所得额<=80000, 7160, TRUE, 15160), 税额, 应纳税所得额*税率-速算扣除数, 税额 ))
在名称管理器中定义为“个税”,即可像原生函数一样使用:=个税(B2)
14. MAP函数 - 数组批量处理器
=MAP(数组1,[数组2,...,], LAMBDA(参数1,参数2,...,计算))
应用场景:
批量加后缀:=MAP(A1:A10, LAMBDA(x, x&"公司"))多列计算:=MAP(销售额, 成本, LAMBDA(s,c, s-c)) 计算每行利润条件转换:=MAP(分数, LAMBDA(x, IFS(x>=90,"优",x>=60,"及格","不及格")))15. REDUCE函数 - 累积计算器
=REDUCE(初始值,数组, LAMBDA(累积值,当前值,计算))
高级应用:
自定义条件求和:=REDUCE(0, 数据, LAMBDA(a,b, a + IF(b>100, b, 0)))查找最大值位置:=REDUCE(0, 数据, LAMBDA(a,b, MAX(a, b)))字符串连接:=REDUCE("", A1:A10, LAMBDA(a,b, a&","&b))16. SCAN函数 - 带中间结果的REDUCE
=SCAN(初始值,数组, LAMBDA(累积值,当前值,计算))
独特价值:
累计求和:=SCAN(0, 销售额, LAMBDA(a,b, a+b)) 输出每一步的累计值运行最大值:=SCAN(0, 数据, LAMBDA(a,b, MAX(a,b)))状态跟踪:跟踪库存变化、余额变动等序列17. BYROW / BYCOL - 行列向量化计算
=BYROW(数组, LAMBDA(行,计算))=BYCOL(数组, LAMBDA(列,计算))
高效替代方案:
行求和替代SUM(axis=1):=BYROW(数据区域, LAMBDA(行, SUM(行)))列平均替代AVERAGE(axis=0):=BYCOL(数据区域, LAMBDA(列, AVERAGE(列)))行内最大值:=BYROW(数据区域, LAMBDA(行, MAX(行)))六、特别彩蛋:让Excel“活”起来
18. IMAGE函数 - 单元格内嵌图片
=IMAGE(URL,[替代文本],[宽度],[高度])
创新应用:
动态产品目录:=IMAGE(VLOOKUP(产品ID, 产品表, 图片URL列, FALSE))二维码生成:=IMAGE("https://api.qrserver.com/v1/create-qr-code/?size=150x150&data="&A2)仪表板可视化:结合条件格式,创建动态数据看板19. WEBSERVICE函数 - 获取网络数据
20. FILTERXML / WEBSERVICE组合 - 网页数据抓取
1. 下列哪项最能描述“声明式编程”在Excel中的体现?
A) 通过录制宏自动执行重复操作
B) 使用函数描述想要的结果,而非操作步骤
C) 通过Power Query进行数据转换
D) 使用条件格式可视化数据
2. 需要从混合文本“张三-销售部-2023年报表”中提取“销售部”,最佳函数组合是?
A) LEFT+FIND
B) TEXTBEFORE+TEXTAFTER
C) MID+SEARCH
D) TEXTSPLIT
3. 想要创建一个可重复使用的个税计算功能,最优方案是?
A) 编写VBA宏
B) 使用LAMBDA定义自定义函数
C) 创建复杂的IF嵌套公式
D) 使用数据透视表计算
最后提醒:这些新函数多数要求Office 365、Excel 2021或WPS最新版。如果发现不可用,请先检查版本。函数世界日新月异,持续学*是保持竞争力的唯一途径。
立即行动:打开你的Excel,从SEQUENCE和TEXTSPLIT开始,体验这场效率革命。如果你觉得这份指南有价值,欢迎分享给更多需要的人。
(完)
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除