在Excel中计算两个date之间的年假

这个任务似乎很容易,但我不能诉诸于vba的方式。

我所需要的是根据开始和结束date以及他们的工作时间来了解员工年休假的时间。

几小时的工作

更清楚的是,这个例子显示了一个员工从星期一到星期天的合同工时数,即他们每天只工作五个星期六,四个星期五和五个星期五。 下面显示了员工select年假的开始date和结束date。 我需要根据合同规定的时间计算两个date之间的年假。 在这种情况下,答案将是45个小时。

这里有另一种方法 – 我将开始date和结束date之间的天数扩展为一个数组,然后使用生成的date数来抵消工作date

 =SUMPRODUCT(N(OFFSET(A3,0,WEEKDAY(ROW(INDIRECT(A6&":"&B6)),2)-1))) 

在这里输入图像说明

如果你有某个地方的假期date列表(比如I3:N3),你可以按如下方式排除它们

 =SUMPRODUCT(N(OFFSET(A3,0,WEEKDAY(ROW(INDIRECT(A6&":"&B6)),2)-1))*ISNA(MATCH(ROW(INDIRECT(A6&":"&B6)),I3:N3,0))) 

– 这是有点冗长的,但我现在能想到的唯一方法。