计算时间重复区间

 

举例

Excel文件book1.xlsx有某浴室某日顾客进出时间登记表,部分数据如下图所示:

..

现在要计算每个顾客在每个时间段中占据的分钟数,如下图所示:

..

编写SPL脚本:


A

1

=T("e:/work/book1.xlsx")

2

=time("18:00","HH:mm")

3

=A1.run(4.run(t1=elapse@s(A2,(~-1)*3600),t2=elapse@s(A2,~*3600),t=interval@s(max(time(A1.Enter),t1),min(time(A1.Leave),t2))\60,if(t>0,A1.~.field(#+3,t))))

4

=T("e:/work/book2.xlsx",A1)

A1   读入book1.xlsx文件数据

A2   开始时间18:00

A3   循环A1的每一行,循环4个时间段,算出本时段开始时间t1和结束时间t2,计算顾客进场时间与t1的较大值及离场时间与t2的较小值之间的时间差t(分钟),如果t大于0则将它保存到A1当前行的第(#+3)个字段中,其中#是时间段序号。

A4   A1保存到文件book2.xlsx