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

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+批次内相对序号