在每个分类里进行跨行计算
例题描述
在 Excel 中有一组按地区,产品以及周分类的粮食作物进口数量表,部分数据截图如下:
现在需要计算相同地区下同类产品的比上周数量增量,并将计算的结果放入 E 列,如下图,相同颜色为相应跨行计算的 Quantity 增量示意图:
实现步骤
1. 打开集算器,新建文件。
2. 编写处理代码,代码以及含义如下:
A |
B |
|
1 |
=file("data.xlsx").xlsimport@bt() |
|
2 |
=A1.rename(#5:Volume) |
|
3 |
=A2.derive(#:ID) |
|
4 |
=A3.group(Product,Region) |
|
5 |
=A4.run(~.(Volume=if(#==1,null,Quantity-Quantity[-1]))) |
|
6 |
=A5.conj().sort(ID).(Volume) |
A1 打开 data 文件,并导入所有数据为序表,其中选项 b 表示去掉多余的空行。
A2 由于需要对 Volume 进行赋值,而原始列名又长又包含空格,不是一个有效的字段名,重命名以方便计算和易读。
A3 后面的分组会打乱数据的顺序,添加一个序号字段用于计算完成后恢复原序。
A4 按照产品和地区分组。
A5 对每一组数据分别计算数量的增值,并赋值给 Volume 列。
A6 计算完成后,再将各组数据合并为大表,且按 ID 恢复初始次序,然后取出 Volume 列。
3. 运行代码后,将 A6 格的内容复制,并粘贴到 Excel 的 E2。
https://stackoverflow.com/questions/63810924/how-can-i-automate-these-formulas
【附件】 data.zip
英文版