如何实现相邻行满足特定条件时分组汇总

现有excel 文件 book1.xlsx,数据如下:

051000 55.74
055000 61.47

056000 44.53

062000 142.11

081000 142.11
088000 44.53

092000 52.89

095100 118.37
096500 354.8

096700 6.49
099100 44.53

102600 162.74

需要按第一列分组,对第二列的数值求和。分组条件为: 如果本条不为空,且上一条为空,且上上条和本条的前两位数字不同,则分新一组。计算结果如下:

051000 161.74
062000 142.11
081000 186.64
092000 577.08
102600 162.74

借助集算器可以很方便地完成这件事。
集算器安装包可去
润乾网站下载集算器职场版,运行时需要一个授权,免费版本就够用。

1.     在集算器中编写脚本 groups.dfx:


A
1 =file("book1.xlsx").xlsimport()
2 =A1.group@i(if(#1 && #1[-1]==null && left(#1,2)!=left(#1[-2],2)))
3 =A2.new(#1:section,round(~.sum(#2),2):amount)

 A1   读取 book1.xlsx 数据

A2   按条件(本条不为空,且上一条为空,且上上条和本条的前两位数字不同)分组

A3   计算每个分组内第二列数值的和,section 为每组第一列的第一个值

2.     执行脚本,A3 是需要计算出的结果。