14.10 横向扩展出多组 N 列

 

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

imagepng

统计从 18:00 到 22:00 间每小时时间段内的顾客情况,此时间段内某顾客还在则填 1,否则不填,如下图所示:

imagepng

在 F2 中写入代码:

A
1 =E(‘A2:D15’)
2 =create(${([“Male”,“Female”]*4).concat@c()})
3 =interval@s(time(“00:00”,“HH:mm”),time(“18:00”,“HH:mm”))/86400
4 =A1.run(A2.insert(0),4.run(t1=A3+(~-1)*3600/86400,t2=A3+~*3600/86400,k=if(A1.Sex==“M”,~*2-1,~*2),if(A1.Enter<t2 && A1.Leave>t1,A2(A1.#).field(k,1))))
5 return A2

A2 创建由 4 组 Male,Female 列组成的序表
A3 把开始时间 18:00 转化为 Excel 的存储值
A4 循环 A1 的每一行,在 A2 中追加一条新行,循环 4 个时间段,算出本时段开始时间 t1 和结束时间 t2,根据顾客性别算出要填写的列序号 k,如果顾客本时段还在浴室内,则在 A2 的当前行第 k 列填写 1


帮你早下班 - esProc 桌面版与 Excel 数据处理
14.9 横向扩展出多列
14.11 生成排列组合