WPS新函数LET让公式的长度大大的简化了. No.264
优秀创作者
今天拿到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生产计划运营,一辈子够不够?
请关注古哥计划
WPS 新函数 WRAPROWS 把错乱的数据整理成标准二维数据 NO 261
创作者俱乐部成员