【新函数】将改变写函数习惯,是时候升级您的大脑了

WPS最近更新滴非常猛,新增了十几个好用的函数,这些函数到底好不好用,我们要不要学习呢,个人觉得这些函数及后续还会新增一些函数可以帮助我解决2类问题:

对一般人来说:以前比较棘手的问题,现在很容易解决,即公式变简单了

对高手来说:可以自适应一次得到想要的结果,即更加智能化

这篇文章暂时不介绍这些函数用法,大家感兴趣可以自己查找或者后面再补上。

今天先举几个例子大家感受一下,本人目前版本是12.1.0.16388测试版。

  1. 计算奖金

奖金规则

总金额

奖金

<100万

5000

100万~200万

10000

200万~300万

20000

>=300万

30000

按业务员和部分产品的总金额,计算奖金

说明:正常按业务员计算总金额,再计算奖金,也可以看到新函数的优势,但不够明显,所以这里又加了部分产品举例。

普通公式:

=IFS(SUMIFS(G:G,C:C,I2,D:D,"插销")+SUMIFS(G:G,C:C,I2,D:D,"门吸")<1000000,5000,SUMIFS(G:G,C:C,I2,D:D,"插销")+SUMIFS(G:G,C:C,I2,D:D,"门吸")<2000000,10000,SUMIFS(G:G,C:C,I2,D:D,"插销")+SUMIFS(G:G,C:C,I2,D:D,"门吸")<3000000,20000,SUMIFS(G:G,C:C,I2,D:D,"插销")+SUMIFS(G:G,C:C,I2,D:D,"门吸")>=3000000,30000)

新函数:

=LET(x,SUMIFS(G:G,C:C,I2,D:D,"插销")+SUMIFS(G:G,C:C,I2,D:D,"门吸"),IFS(x<1000000,5000,x<2000000,10000,x<3000000,20000,x>=3000000,30000))

很明显新函数会更简短直观易理解。

  1. 制作报表

还是刚刚的表格,如果我们想要得到右边的结果,透视表是一个非常不错的选择,我们这里主要是对比函数,所以我们用函数来完成。

普通公式:右边最上面的

=SUMIFS($G:$G,$C:$C,$I20,$D:$D,J$19)

新函数:右边中间的

姓名:

=UNIQUE(C2:C1099)

产品:

=TOROW(UNIQUE(D2:D1099))

金额:

=SUMIFS(G:G,C:C,I26#,D:D,J25#)

新函数:右边下面的

=LET(a,FILTER(UNIQUE(DROP(C:C,1)),UNIQUE(DROP(C:C,1))<>0),b,FILTER(TOROW(UNIQUE(DROP(D:D,1))),TOROW(UNIQUE(DROP(D:D,1)))<>0),c,SUMIFS(G:G,C:C,a,D:D,b),HSTACK(VSTACK("姓名/产品",a),VSTACK(b,c)))

简单对比一下,普通公式(最上面的)最简单,中间的次之,最下面的最复杂。

当我们源数据修改或新增之后,会怎样呢?

很明显,新函数可以自适应数据源的变化。普通公式为什么不可以呢?

普通公式的姓名(最左边这列 )、产品(最上面这列)是手动输入的,无自动适应修改后的姓名(阿宽、德宽)。如果要用这种方法,手动新增阿宽、德宽,再向下填充公式即可。

所以普通公式只是写了计算的这部分,而新函数(中间的)计算这部分的公式是:=SUMIFS(G:G,C:C,I26#,D:D,J25#)与普通公式的:=SUMIFS($G:$G,$C:$C,$I20,$D:$D,J$19),其实差不多,或者可以说稍微简单一点点,因为普通公式涉及到单元格引用,而新函数则不需要考虑这个问题。

下面举两个之前函数不容易实现的效果。

  1. 拆工单

左边这样的表格,想拆分成右边的效果,这样方便安排生产线加工处理。那怎么实现呢?

=VSTACK(A1:B1,CHOOSEROWS(A2:B10,TEXTSPLIT(CONCAT(REPT(SEQUENCE(9)&"-",C2:C10)),"-",,1)*1))

输入以上函数即可。

  1. 实现所有组合

左边这样的表格,想组合后实现右边的效果。

=VSTACK("型号",TOCOL(TOCOL(TOCOL(M2:M7,1)&"-"&TOROW(N2:N7,1),1)&"-"&TOROW(O2:O7,1),1))

输入以上函数即可

  1. 多维表转一维表

把左上角的二维表格转成下面的一维表格。

=LAMBDA(a,VSTACK({"销售员","产品","金额"},TEXTSPLIT(CONCAT(TOCOL(DROP(CHOOSECOLS(a,1),1)&"-"&DROP(CHOOSEROWS(a,1),,1))&"-"&TOCOL(DROP(a,1,1))&"@"),"-","@",1)))(A1:E4)

这是左侧下方的带表头的公式。右侧公式如下

=VSTACK({"销售员","产品","金额"},二维转一维(A1:E4))

为了更加直观,把表头部分公式去掉。

去掉表头后,左侧下方、右侧公式分别为:

=LAMBDA(a,TEXTSPLIT(CONCAT(TOCOL(DROP(CHOOSECOLS(a,1),1)&"-"&DROP(CHOOSEROWS(a,1),,1))&"-"&TOCOL(DROP(a,1,1))&"@"),"-","@",1))(A1:E4)

=二维转一维(A1:E4)

可以看出右侧公式更简洁,其实是把左侧下方的公式定义为“二维转一维”这样自定义的函数,这样用起来非常方便。当然多维转一维也是可以的。

悄悄告诉你,表格发给别人之后,自定义公式还是可以正常使用的哦~~(软件版本要支持,要是新版本)

好了,今天简单介绍到这里,记得一键三连哦~~

以上内容仅代表个人观点,欢迎各位大佬批评指正!

你愿意学习新函数吗
愿意
7 (100%)
不愿意
0 (0%)
7人参与 投票已截止
安徽省
浏览 1250
5
10
分享
10 +1
5
5 +1
全部评论 5
 
晴天
这几个公式刷新了我的三观,太强大了,以前需要VBA实现。
· 浙江省
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

收藏!
· 辽宁省
回复
 
任舟
任舟

创作者俱乐部成员

学习
· 山西省
回复
 
亂雲飛渡
学习
· 广东省
回复
 
李强
支持一下
· 山西省
回复