将一列 1 转换为时间表

将一列 1 转换为时间表

我正在研究将一列带有标题的 1 转换为时间表的可能性。我附上了一个问题片段。我有一行 1 显示潜在员工的工作地点,还有一个空白单元格显示他们不在的地方。所以第一个 1 是员工的开始时间。第一个空白单元格之后的第一个空白单元格是早茶。早茶空白之后的第一个 1 是回去工作,等等。

我想创建一组公式,能够读取数据并将其转换为附加的时间表。

例如,第一行的开始时间是 7.30,早茶时间是 8.30,午餐时间是 10.30,下午茶时间是 13.45,结束时间是 16.00。

员工始终会享用早茶、午餐和下午茶,但他们的开始时间和结束时间可能与屏幕截图中显示的时间不同

数据

在此处输入图片描述

理想的解决方案

在此处输入图片描述

答案1

这是一种使用辅助列的方法,首先检查中断的位置,然后获取相应的时间。

在此处输入图片描述

辅助公式:

=MATCH(1,INDIRECT(H1),0)
=MATCH(TRUE,INDEX(OFFSET(INDIRECT(H$1),H2,0)="",0),0)+H2
=MATCH(TRUE,INDEX(OFFSET(INDIRECT(H$1),H3,0)="",0),0)+H3
=MATCH(TRUE,INDEX(OFFSET(INDIRECT(H$1),H4,0)=1,0),0)+H4
=MATCH(TRUE,INDEX(OFFSET(INDIRECT(H$1),H5,0)="",0),0)+H5
=MATCH(TRUE,INDEX(OFFSET(INDIRECT(H$1),H6,0)="",0),0)+H6-1

获取时间的公式:

=INDEX($A$2:$A$50,H2)
=INDEX($A$2:$A$50,H3)
=INDEX($A$2:$A$50,H4)
=INDEX($A$2:$A$50,H5)
=INDEX($A$2:$A$50,H6)
=INDEX($A$2:$A$50,H7)

该公式还会考虑午休时间的结束,并假设茶歇时间只占一个时间段。
如果茶歇时间超过 30 分钟,或者缺少任何休息时间,该公式将无法正常工作。

相关内容