【新函数】将改变写函数习惯,是时候升级您的大脑了
WPS最近更新滴非常猛,新增了十几个好用的函数,这些函数到底好不好用,我们要不要学习呢,个人觉得这些函数及后续还会新增一些函数可以帮助我解决2类问题:
对一般人来说:以前比较棘手的问题,现在很容易解决,即公式变简单了
对高手来说:可以自适应一次得到想要的结果,即更加智能化
这篇文章暂时不介绍这些函数用法,大家感兴趣可以自己查找或者后面再补上。
今天先举几个例子大家感受一下,本人目前版本是12.1.0.16388测试版。
- 计算奖金
奖金规则
总金额 | 奖金 |
<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))
很明显新函数会更简短直观易理解。
- 制作报表
还是刚刚的表格,如果我们想要得到右边的结果,透视表是一个非常不错的选择,我们这里主要是对比函数,所以我们用函数来完成。
普通公式:右边最上面的
=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),其实差不多,或者可以说稍微简单一点点,因为普通公式涉及到单元格引用,而新函数则不需要考虑这个问题。
下面举两个之前函数不容易实现的效果。
- 拆工单
左边这样的表格,想拆分成右边的效果,这样方便安排生产线加工处理。那怎么实现呢?
=VSTACK(A1:B1,CHOOSEROWS(A2:B10,TEXTSPLIT(CONCAT(REPT(SEQUENCE(9)&"-",C2:C10)),"-",,1)*1))
输入以上函数即可。
- 实现所有组合
左边这样的表格,想组合后实现右边的效果。
=VSTACK("型号",TOCOL(TOCOL(TOCOL(M2:M7,1)&"-"&TOROW(N2:N7,1),1)&"-"&TOROW(O2:O7,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)
可以看出右侧公式更简洁,其实是把左侧下方的公式定义为“二维转一维”这样自定义的函数,这样用起来非常方便。当然多维转一维也是可以的。
悄悄告诉你,表格发给别人之后,自定义公式还是可以正常使用的哦~~(软件版本要支持,要是新版本)
好了,今天简单介绍到这里,记得一键三连哦~~
以上内容仅代表个人观点,欢迎各位大佬批评指正!
创作者俱乐部成员
创作者俱乐部成员