如何将数据按规则从一行自动扩展成多行
某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 用来分组汇总。
英文版