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