在包含分类汇总的表格右边拼上对应的子类占比

本文介绍如何在Excel中处理部件及其金属子部件的占比数据,通过条件分组、转置和汇总,实现部件右侧显示每种金属的占比情况。利用集算器脚本实现复杂的数据整理,包括去除重复、计算比例和填充空行,从而高效地完成数据整合。
摘要由CSDN通过智能技术生成

例题描述和简单分析

Excel中有序存放着多种部件及其金属子部件,当Level=2时,表示该行为部件(汇总行),当Level=3时,表示该行为子部件。Material列和Proportion列分别存放子部件的金属名称和占比。如下所示:

ABCD
1NameLevelProportionMaterial
2Part 12
3Part 1 A30.37Ally
4Part 1 B30.40Ally
5Part 1 C30.04Copper
6Part 1 D30.01Titainium
7Part 1 E30.04Steel
8Part 1 F30.07Titainium
9Part 1 G30.07Copper
10Part 22
11Part 2 A30.50Steel
12Part 2 B30.50Ally

现在要在部件(汇总行)的右侧拼上每种金属的占比,如下所示:

ABCDEFGH
1NameLevelProportionMaterialAllyCopperSteelTitainium
2Part 120.770.110.040.08
3Part 1 A30.37Ally
4Part 1 B30.40Ally
5Part 1 C30.04Copper
6Part 1 D30.01Titainium
7Part 1 E30.04Steel
8Part 1 F30.07Titainium
9Part 1 G30.07Copper
10Part 220.50.5
11Part 2 A30.50Steel
12Part 2 B30.50Ally

         上述算法涉及条件分组、转置、补足空行,以及汇总和明细混合数据的处理办法。

解法及简要说明

         选中Excel片区A1:E12,复制到集算器脚本的A1单元格内,接下来编写如下脚本:

AB
1…(复制来的数据)
2=A1.import@t()
3=A2.group@i(Level==2)
4=A3.(~.to(2,).groups(Material;sum(Proportion):value,count(1):rowcount))
5=A2.id(Material).select(~)
6=create(${A5.string()})
7for A4=A7.align(A5,Material)
8=A6.record(B7.(value))
9=A6.insert(0:B7.sum(rowcount))

A3:将每个部件及其子部件分到同一组。

A4:对于每组数据,先取子部件,再按金属名称进行二级组,算出每种金属的百分比含量和行数。

A5:对金属名称去除重复,并过滤掉空值

A6:建立空二维表,列名为将来要输出的金属名称。

A7:循环A4中的每一组,先将该组数据按将来要输出的金属名称对齐,再在A6按顺序写入各金属的占比,最后追加与子部件数量相等的空行。

执行上述脚本,连同列名复制A6的计算结果,再粘贴到Excel的E1单元格,即可完成计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值