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

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 用来分组汇总。