首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

考勤时间、应出勤天数、工作日的计算,这些你怎么能够错过!

今天小必老师给几题简单的经常在工作中能用到问题,使用Excel给出解决方案,主要运用的最多的当属于HR。

1

不足半小时按半小时计算

要求:假设早上9:00上班,迟到半小时之内按半小时计算,超过半小时不足1小时按1小时计算,1小时按1小时计算,超过1小时后,超过的部分原还半小时之内按半小时计算,超过半小时按1小时计算。(假设情形)

公式:在C2单元格中输入公式:=CEILING((B2-INT(B2)-"09:00:00")*24,0.5)

解释:INT函数是用来取整的,上面的这种日期与时间的合成的时间,其转换成数值的话那么整数部分表示日期,小数部分表示时间,时间使用INT函数就可以将日期提取出来,再用原时间减去日期,就得到了小数部分,即时间,时间是小数,然后再乘以24小时,就将小数表示天的时间转换成了小时;而CEILING函数是向上舍入到指定的倍数,那么这里的倍数是半小数,即0.5。

2

不足半小时按0计算

要求:假设早上9:00上班,迟到半个小时之内按不迟到计算,半个小时以上不足一个小时的按半个小时计算,超过1个小时后,仍然按不足半小时按0计算,半小时以上按半小时计算。(假设情形)

公式:在C2单元格中输入公式:=FLOOR((B2-INT(B2)-"09:00:00")*24,0.5)

解释:基本与上一个例子是一样的,这里的FLOOR函数与CEILING函数正好是相反的,FLOOR是按指定的倍数向下舍入。

3

应出勤天数计算

要求:下面是某部门的新员工的入职时间,按要求计算每个人的出勤日期,即工作日上班的天数,不考虑节假日调整的问题。

公式:在C2单元格中输入公式:

=NETWORKDAYS(B2,EOMONTH("2019-6-1",0))

解释:NETWORKDAYS是计算两个日期之间的工作日的天数,这里未指定第三个可选参数,即自定义节假日。EOMONTH函数是返回当前日期的最后一天,可定义第二个参数,这里第三参数为0即返回当前日期的最后一天。

4

指定节假日的出勤天数的计算

要求:下面是某部门的新员工的入职时间,按要求计算每个人的出勤日期,即工作日上班的天数,2019年6月7日为端午节,不上班。

公式:在C2单元格中输入公式:

=NETWORKDAYS(B2,EOMONTH("2019-6-1",0),"2019-6-7")

解释:同上面的例子是一样的,本例只是对NETWORKDAYS函数的第三个参数指定了一个节假日,即端午节。

5

指定具体周末的应出勤天数的计算

要求:通常情况下,外国人的周末与中国人有差别,比如某外企是星期五与星期六休息,那么工作日是从周天开始的。

公式:在C2单元格中输入公式:

=NETWORKDAYS.INTL(B2,EOMONTH("2019-6-1",0),7)

解释:这个函数是上面函数的升级版,其中第三个参数指定了相关的星期为休息日,这里的7表示周五周六休息,同样,第4个参数可以指定节假日。

6

6天制工作日应出勤天数的计算

要求:六天制工作计算应出勤天数,与上面的指定周末的方法是一样的。

公式:在C2单元格中输入公式:

=NETWORKDAYS.INTL(B2,EOMONTH("2019-6-1",0),11)

解释:同上面的例子是一样的,本例只是对NETWORKDAYS函数的第三个参数指定了休息日为周末,其他的时间为工作日。

7

5.5天制工作日应出勤天数的计算

要求:在早期的时候,一般是上5天班,然后周六再上半天班的模式。这样的应出勤天数又该怎么算?

公式:在C2单元格中输入公式:

{=NETWORKDAYS(B2,EOMONTH("2019-6-1",0))+SUM(--(WEEKDAY(ROW(INDIRECT("$1:$"&DAY(EOMONTH(C10,0))))-1,2)=6))*0.5}

解释:先使用NETWORKDAY函数计算出周五至周五的应出勤的天数,然后再以1号为起点,计算每个月星期六有几天,乘以0.5就是周六半天总共要出勤的天数。上面的公式属于数组公式,需要按组合键完成。

8

中国式调整工作日的计算

要求:2019年的9月13日为中秋节,这一三为星期五属于正常的休息,29日这天为了配合国庆放假,这一天属于正常上班,那么像这样的日期应该怎么计算员工的应出勤天数呢?

公式:在C2单元格中输入公式:

=NETWORKDAYS(B2,EOMONTH(B2,0),"2019-9-13")+IF(B2>VALUE("2019-9-29"),0,1)

解释:先计算出中秋节当天的所有的工作日的天数,然后再计算入职时间在2019年9月29日这天前后的,在这个日期之前(包含等于)那么应出勤天数加1,否则应出勤天数减去1.这样就计算出了整个应出勤天数。

另外:上面的例子中的当前月的最后一天是用函数获取的,那么这里为了使用通用公式,也可以将月初第一天的日期使用函数获取,假如A2单元格存放入职日期,那么当月最后一天的日期可以写成:=EOMONTH(A2,0),当月第一天的日期可以写成:=EOMONTH(A2,-1)+1.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211017A01MYR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券