事情是这样子的。今天欢乐地帮粉丝讲解excel的函数。然后发现了他们人事系统的一个bug。如下图所示,他们的系统在某些场景下,会出现请假24小时,扣工资2天的情况。感觉要在公司炸锅了。

请假时间怎样计算 如何计算请假天数(1)

我们常规计算请假时间都是按照时长来的,不足4小时算半天,超过4小时算一天。这个公司的系统简单粗暴。如下图所示:上午请假,只要请假时间超过了下午一点,就算请假1天。

请假时间怎样计算 如何计算请假天数(2)

为了探究这个系统如何计算请假天数,我们对系统进行了测试,最后发现关键点在12:30和13:30这两个时间点上。这个系统是按照上午8:30开始上班到13:30算上午。下午13:31到17:30算下午,期间任何时间请假,都会算当个上午/下午已请假。

请假时间怎样计算 如何计算请假天数(3)

请假时间怎样计算 如何计算请假天数(4)

请假时间怎样计算 如何计算请假天数(5)

请假时间怎样计算 如何计算请假天数(6)

为了更好的呈现这个问题,粉丝朋友决定要把这个请假算法用excel来实现

最终,我们的算法规则如下:

先按照日期算请假天数基数:结束那天 - 开始那天 1 ;

如果请假当天的开始时间超过12:30,请假天数减0.5天,开始天数超过18:30,请假天数减1天;

如果请假结束时间没超过13:30,请假天数减0.5天,如果结束时间没超过08:30,减1天;

那这个该如何用excel来实现呢:

已经理明白了怎么算,那么公式就简单了。刚开始粉丝朋友还说要用vba,但我跟他说,不需要VBA,用好函数就可以解决问题。且都是基础的函数,果然,在引导下,粉丝朋友也成功写出了对应的excel函数。

我们的公式如下:

请假时间怎样计算 如何计算请假天数(7)

粉丝在我们梳理完成整个逻辑后,着手写了一个实际的函数,准备拿着这个函数去找公司沟通。希望他成功,哈哈哈。

大家来品评一下,这个规则合理吗?欢迎交流讨论。

,