WPS新函数LET让公式的长度大大的简化了. No.264

古哥计划
古哥计划

2024年03月优秀创作者

今天拿到WPS的最新版本,更新的其中之一函数LET是古老师一直盼望的一个新函数,这个函数最大的优势就是在需要多次引用的时候可以用LET函数来定义对应的名称,从而让公式的长度大大的简化了。

结合一个需求来说明LET函数的用法,有一组数据,一个合同对应多个工序,每工序都有对应的数量,现在需要转换成表2的显示方式:

同一个合同对应的工序合并到一个单元格

相对工序的数量汇总到一起,并求和

数据如下图1所示:

图1

需求分解:

看到需求后,直接反应就是一个一维报表转二维报表并连接的需求。

一个合同对应多个工序,这里可以用筛选函数筛选

筛选出来的后结果,用多条件求和函数求和

求和后的结果用文本连接符号连接;

把多维数据转成一行数据,并用连接函数连接到一个单元格上面;

模拟结果如下图2所示:

图2

对合同去重

需要对表1变形成表2,第一步把表1的合同数据去重。

录入函数:

=UNIQUE(B3:B10)

效果如下图3所示:

图3

筛选合同对应工序

有了合同号后,利用筛选函数配合去重函数可以把一张合同对应的工序筛选出来。

录入函数:

=UNIQUE(FILTER(D3:D10,B3:B10=F3))

函数释义:

筛选工序,条件为合同号等于F3的合同,再通过UNIQUE删除对应的重复项。

效果如下图4所示:

图4

汇总工序的数量

上面通过筛选函数得到合同对应工序的唯一值,此时就可以用多条件求和函数对合同对应的工序数量进行求和了。

录入函数:

=SUMIFS(C:C,B:B,F3,D:D,G3#)

函数释义:

这是一个二条件的汇总求和,需要满足“合同、工序”的条件,求和区域为C列数量;

效果如下图5所示:

图5

为数量添加隔断

为了后续合并成同一个单元格后,不同工序和汇总数量需要有一个隔断的效果,这里用文本连接符号来解决这个问题。

录入函数:

=":("&SUMIFS(C:C,B:B,F3,D:D,G3#)&"),"

函数释义”

通过文本连接符号“&”与号多次连接隔断符号(左括号、右括号、逗号)

效果如下图6所示:

图6

合并成一个单元格

到了上面这一步基本上就完成了,剩下的就是合并转置了。

把两个区域连接到一起:

=HSTACK(G3#,H3#)

再转置:

=TOROW(I3#)

再合并:

=CONCAT(TOROW(HSTACK(G3#,H3#)))

完成后效果如下图7所示:

图7

利用LET简化公式

上面通过辅助列的方法,一步一步把结果写出来了,现在就轮到LET上场了,定义第一个:

名称:A

公式:UNIQUE(FILTER(D3:D10,B3:B10=F3)),筛选合同的去重工序名称

录入公式:

=LET(A,UNIQUE(FILTER(D3:D10,B3:B10=F3)),CONCAT(TOROW(HSTACK(UNIQUE(A),":("&SUMIFS(C:C,D:D,A,B:B,F3)&"),"))))

效果如下图8所示:

图8

合并完后,发现需要把最后一个逗号去除,此时可以再来一次LET

名称:B

公式:

=LET(A,UNIQUE(FILTER(D3:D10,B3:B10=F3)),CONCAT(TOROW(HSTACK(UNIQUE(A),":("&SUMIFS(C:C,D:D,A,B:B,F3)&"),"))))

录入公式:

=LET(B,LET(A,UNIQUE(FILTER(D3:D10,B3:B10=F3)),CONCAT(TOROW(HSTACK(UNIQUE(A),":("&SUMIFS(C:C,D:D,A,B:B,F3)&"),")))),LEFT(B,LEN(B)-1))

函数释义:

先判断B的长度,再用LEFT从左边开始提取B的长度少1个字符的字段。

效果如下图9所示:

和古哥一起学习PMC生产计划运营,一辈子够不够?

请关注古哥计划

自动分配客户对应业务的奖金No.263

快速查询出销售前2的销售员和销售金额并排序 No.262

WPS 新函数 WRAPROWS 把错乱的数据整理成标准二维数据 NO 261

多表指定日期与时间的生产数据查询No.260

WPS 新函数 TOCOL将二维数组转化成一行【No.259】

WPS 新函数 VSTACK 多表查询合并【No.258】

257 一招搞定请假时间的区间转换及人数统计

256 快速匹配不同的采购量对应的结算量

255 WPS新函数案例:复杂的产品欠料运算

254 WPS新函数案例:灵活多变的万年日历

253 WPS新函数案例:指定工号快速筛选

252 WPS新函数案例:员工姓名与工号快速分离

251 WPS新函数案例:对客户快速分列并统计

250 WPS新函数案例:快速分类统计员工生日数

249 WPS新函数案例:多条件统计订单数

248 WPS新函数案例:快速统计记件人员工资

浙江省
浏览 1489
12
86
分享
86 +1
61
12 +1
全部评论 61
 
沫筱汐
打卡
· 浙江省
回复
 
saAE86
学习
· 广东省
回复
 
楊曉希
666,学到了,谢谢
· 陕西省
回复
 
乐
很好学到了
· 广东省
回复
 
我的153
学习了
· 安徽省
回复
 
WPS_1702690281
· 浙江省
回复
 
喔一
打卡
· 河南省
回复
 
uibpqds
222
· 河南省
回复
 
LG
111
· 中国
回复
 
WPS_1705930346
打卡
· 云南省
回复
 
superstar
打卡
· 内蒙古
回复
 
鱼米
哈好好好
· 浙江省
回复
 
懒得批爆
懒得批爆

2024年03月优秀创作者

=let(x,123,y,345,x+y) 可以直接赋值这一点很赞,根据这个特性可以嵌套很多函数进去 LET函数最多嵌套10层,超过10层后消耗的资源是巨大的,超过10层建议用VBA、宏或INDEX、MATCH、LOOKUP或Power Query 或其他数据分析工具等来完成工作 LET函数最多赋值127个
· 四川省
回复
 
Breathe again
是啊
· 山西省
回复
 
LG
1111
· 中国
回复
 
学术追梦人
牛呀,有点儿看不懂了。
· 河南省
回复
 
HZT-tao
谢谢分享啊
· 上海
回复
 
KING'S GROUP 大梵
谢谢分享啊
· 上海
回复
 
WPS_1702385654
学习了 谢谢分享
· 上海
回复
 
WPS_1705674130
· 江西省
回复