如何将数据按规则从一行自动扩展成多行

Excel 文件由起始时间和终止时间这两列组成:


A

B

1

FeedOff

FeedOn

2

2020-09-19 06:00:00

2020-09-22 06:00:00

3

2020-09-28 06:00:00

2020-09-28 18:00:00

4

2020-10-01 19:00:00

2020-10-06 19:00:00

计算目标:将每一行的起始时间/ 终止时间按连续日期扩展成多行,并计算出每天的小时数。部分数据如下(其中第 1 行扩展成 4 行):


A

B

1

2020-09-19

18

2

2020-09-20

24

3

2020-09-21

24

4

2020-09-22

6

5

2020-09-28

12

6

2020-10-01

5

7

2020-10-02

24

8

2020-10-03

24

9

2020-10-04

24

10

2020-10-05

24

11

2020-10-06

19

实现步骤:

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

2.  编写脚本并执行


A

B

1

=file("data.xlsx").xlsimport@t()


2

for A1

=periods@s(A3.FeedOff,A3.FeedOn,3600)

3


=B3.groups(date(~);count(1))

4


=file("result.xlsx").xlsexport@a(B3)

上面脚本中,函数periods 用来按指定间隔生成连续的时间序列,@s 表示按秒生成,间隔 3600 秒即 1 小时。函数 groups 用来分组汇总。