excel函数、加班小时数计算公式

我们是一般的考勤系统,每月导出后是EXCEL,表单,我们每天考勤两次,上班一次,下班一次,上午是08:00前上班,下午是17:00后下班,17:30后开始计算加班,中午休息1小时,正班为8小时,比如张三:07:50
18:36

加班为1小时,以此类推,各位师傅们请指导下,谢谢!      

第1个回答  推荐于2020-01-23
试试从中间开始取,在H6里输入:
以0.1小时为单位四舍五入
=ROUND(24*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)),1)
以0.5小时为单位,舍去小数
=int(48*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)))/2
以1小时为单位(即舍去小数)
=int(24*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)))
以1小时为单位(四舍五入)
=round(24*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)),0)
注意把H6的格式设为数值本回答被网友采纳
第2个回答  2014-03-06
你的表格未带行号和列标,不好写公式。
另外,你的上下班时间是在一个单元格中,还是在上下两个单元格中?追问

在一个格子里,横向的是在一个格子里,也可以下载竖向的,只是竖向的以目前的方式没有横向的好计算好核对。如果有可以直接计算出加班时数的公式就更好了,具我所知是有方式的,只是我不记得怎么套用了,请指教 ,非常感谢!

追答

加班时间以什么为单位,小时还是半小时,在取整时是四舍五入还是只舍不入?
比如H6的结果是要2还是2.5
如果要得到2,H6公式:
=INT(24*MAX(,TIME(LEFT(RIGHT(H5,5),2),RIGHT(H5,2),)-TIME(17,30,)))
如果是要得到2.5,H6公式:
=INT(48*MAX(,TIME(LEFT(RIGHT(H5,5),2),RIGHT(H5,2),)-TIME(17,30,)))/2

追问

亲,不行,还是乱码的
是不是在一个格子里的原因,不能计算?

追答

估计单元格中含有其他不可见的字符。
要看到原文件才能写出准确的公式。

第3个回答  2019-03-04
试试从中间开始取,在H6里输入:

以0.1小时为单位四舍五入

=ROUND(24*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)),1)

以0.5小时为单位,舍去小数

=int(48*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)))/2

以1小时为单位(即舍去小数)

=int(24*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)))

以1小时为单位(四舍五入)

=round(24*MAX(TIME(MID(H5,7,2),MID(H5,10,2),)-TIME(17,30,)),0)
第4个回答  2014-03-07
天雨盾发现,你给的图不是从考勤系统导出来的,是你经过改造的,你以为我们看不懂啊,你把原图发上来才好弄,你改的乱七八糟的追问

原图就是如此,只是我添加了颜色罢了

追答

加班时数总计 是你自己加进来的吧,你想别人按你的方式来,还不如你自己做好。

如果是系统出导来的话,一定是遵从数据库原理的,你这样搞得不三不四,我想用函数来批量处理都不行。