想用EXCEL做个表格,来用计算一下员工的上班时间

比如早上打卡08:10,下班打卡19:23。想算出该员工的上班时间?(注明8:30开始才算上班的。下班时间为打卡实际,中间要除开1.5小时休息时间)
但是假如打卡时间在八点半以后的话就用实际打卡时间为上班时间。例如10:30的话,就用10:30作为上班时间。

估计是导出数据,应该是时间格式。假设打卡时间在A1,下班在B1,假设在C1求:
=(B1-MAX(A1,"8:30"))*24-1.5

引号需要小写的,唯一不能计算的是早上上班立刻又下班的,这样会出现负值,如果解决的话需要知道你啥时候算休息。追问

嗯嗯嗯,就是考勤系统导出来的数据啊,由于我们是生产车间来的,上班时间下班时间,休息时间完全不能确定啊,所以考勤系统里自带的报表什麽的都是用不了的,导出来在EXCEL里看看能不能计算咯~~

追答

我说的这个情况假设8点半上班,9点就闪了。就不准了。因为不管啥时候下班都扣1.5小时。但一般情况都会正常跨越休息时间的,所以公式可以用。
上边一位回答的含IF的公式也可以。

追问

我说漏了!上班打卡时间在8:30之前的都要按8:30分钟开始计算,上班打卡时间在8:30后的则不以8:30为上班时间,而是以实际打卡时间为上班时间,并且12:00——13:00为休息时间。18.00——18:30为晚餐时间,所以如果打卡下班时间在18:00之前的要扣除1小时休息时间,假如下班打卡时间在18:30之后的要扣除1.5小时休息吃饭时间,所以说并不是不管什麽时候下班都扣除1.5小时休息时间的。

追答

和我想的一样。实际接触过。首先要看你导出的什么格式【并非你看到的】,一般的是时间格式,并且带日期的。如果是,上班时间考到A列,下班时间考到B列,C1写入
=IF(TIME(HOUR(B1),MINUTE(B1),SECOND(B1))<TIME(12,0,0),MIN(TIME(HOUR(B1),MINUTE(B1),SECOND(B1)),TIME(12,0,0))-MAX(TIME(HOUR(A1),MINUTE(A1),SECOND(A1)),TIME(8,30,0)),IF(TIME(HOUR(B1),MINUTE(B1),SECOND(B1))<TIME(18,30,0),MIN(TIME(18,0,0),TIME(HOUR(B1),MINUTE(B1),SECOND(B1)))-MAX(TIME(HOUR(A1),MINUTE(A1),SECOND(A1)),TIME(8,30,0))-1/24,TIME(HOUR(B1),MINUTE(B1),SECOND(B1))-MAX(TIME(HOUR(A1),MINUTE(A1),SECOND(A1)),TIME(8,30,0))-1.5/24))*24
然后下拉。
看上去挺废的,简单的不会,除非插几个辅助列。
不能解决的情况:当天上班,第二天下班的。此公式不能用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-14
假设19:23在B2单元格,在一个单元格假设是C2,输入8:30实际上班时间=(B2-C2)*24-1.5
2个时间相减的出来的结果是“天”,乘上24就是 小时数了。
wps表格也可以这么做。追问

假如是8:10打卡的,就得从8:30才算上班的,但是假如打卡时间是8:30以后的,就用实际打卡时间为上班时间,明白不?那该如何呢?

追答

8:10分在A2
=(B2-IF(C2<D2,C2,A2))*24-1.5

第2个回答  2013-03-14
假定A2为早上打卡08:10,B2为下班打卡19:23

公式:
=TEXT(B2-MAX(A2,"8:30")-1.5/24,"h:mm")
第3个回答  2013-03-14
早上打卡08:10,下班打卡19:23 分别在A1B1
在C1中输入 =B1-TIME(8,30,0)-TIME(1,30,0)
或 =B1-TIMEVALUE("8:30")-TIMEVALUE("1:30")
下拉填充。追问

那要是打卡时间为10:15的话,我该怎么弄呢?因为我们的上班的时间不确定的,虽然上班时间定位8:30分。但是后道工序的同事上班时间就不怎么稳定了,可能是十点多打卡上班,可能是八点多上班,也可能是下午上班,刚刚忘了提出这点了,所以这公式用不了吧??

追答

早上打卡08:10,下班打卡19:23 分别在A1B1
在C1中输入 =B1-IF(A1<TIME(8,30,0),TIME(8,30,0),A1)-TIME(1,30,0)
或 =B1-IF(A1<TIMEVALUE("8:30"),TIMEVALUE("8:30"),A1)-TIMEVALUE("1:30")
下拉填充。

本回答被网友采纳
相似回答