如何实现相邻行满足特定条件时分组汇总
现有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 是需要计算出的结果。
英文版