首页 > 其他 > 详细

怎么对 xls 的每 N 行做一次汇总

时间:2020-12-15 17:58:27      阅读:34      评论:0      收藏:0      [点我收藏+]

data.xls部分数据如下:

  A B
1 01.01.2017 00:15 1,830,868
2 01.01.2017 00:30 1,832,884
3 01.01.2017 00:45 1,905,648
4 01.01.2017 01:00 1,957,952
5 01.01.2017 01:15 1,968,672
6 01.01.2017 01:30 1,868,292
7 01.01.2017 01:45 1,904,240
8 01.01.2017 02:00 1,931,128
9 01.01.2017 02:15 1,888,136
10 01.01.2017 02:30 2,069,428
11 01.01.2017 02:45 1,863,588
12 01.01.2017 03:00 1,864,380
13 01.01.2017 03:15 2,106,224
14 01.01.2017 03:30 2,416,920

计算目标:每4行做一次汇总,算出分组序号和每组的和,部分结果如下:

  A B
1 1 7,527,352
2 2 7,672,332
3 3 7,685,532
4 4 9,501,864

这里的难点在于,要对每N行做一次汇总,而不是常见的按某列做分组再进行汇总。

实现步骤:

1.       运行集算器(可以到润乾官网下载,用职场版,首次运行时会提示加载授权,下载个免费的就够了)

2.  编写脚本并执行

  A
1 =file("D:/data.xls").xlsimport()
2 =A1.groups((#-1)\4+1;sum(#2))
3 =file("D:/new.xls").xlsexport(A2)

      脚本中函数 groups 用来实现分组汇总,# 为行号,#2 为第 2 列。(#-1)\4表示行号减1再除以4所得的商,分组条件即商相等的记录。

如果文件较大,内存放不下,则应使用如下脚本:

  A B C
1 =file("D:\data.xls").xlsimport@c()  
2 for A1,4*1000 =A2.groups((#-1)\4+1;sum(_2)) /每次处理一批(4000条)
3   =B2.run(#1=(#A2-1)*1000+#1) /修改序号
4   =file("D:\new.xls").xlsexport@a(B3) /追加到文件

注意,序号=批次号*1000+批次内相对序号

怎么对 xls 的每 N 行做一次汇总

原文:https://www.cnblogs.com/rqgxy/p/14139823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!