每30分钟分配一次员工

时间:2018-10-29 18:38:39

标签: excel vba

我正在尝试创建一个电子表格或宏,以使我能够投入并开始和结束员工的时间,然后每半小时向我显示他们所花的半小时。

例如;

员工1-08:30至10:15

我想要的输出是;

08:00    0
08:30    1
09:00    1
09:30    1
10:00    0.5
10:30    0
11:00    0

因此,在8:30到9:00之间显示为1,因为该员工在那半个小时内上班。但是在10:00到10:30之间显示0.5,因为该员工只在该期间的一半时间里

然后,当我添加更多数据时,它告诉我它们覆盖了哪个半小时。

我尝试使用上限和下限值,counta,countif,countifs,v和hlookups,但无法获得所需的效果。

我猜它应该是一个宏。

1 个答案:

答案 0 :(得分:0)

假设C1D1包含班次的开始和结束时间,而列A包含时间,请在列B中使用以下公式:

=IF(A2>D$1,C2,IF(AND(A2>=C$1,A3<=D$1),1,MAX(0,A3-D$1)/(1/48)))

局限性:班次不能跨越几天,日期不能在00:00之前开始或23:59之后结束

相关问题