求Excel上班工时公式

先说明下,午饭时间是12:00 , 晚饭时间是17:00 。比如: 情况A. 8:00 - 16:30 应该是8.5小时,扣掉中午吃饭时间0.5小时,就是8小时。 情况B. 8:00 - 19:00 应该是 11 小时,扣掉中饭&晚饭各0.5小时,就是10小时。 情况C 16:00 - 02:00 应该是 10小时 ,扣掉晚饭时间0.5小时,就是 9.5小时。因为过了0:00 所以这个公式想不到怎么写。 还有一种情况就是上下班时间随便,但是上班时间只要在午饭,晚饭以内的,都要扣掉0.5小时。。比如15:00 - 22:00 要扣晚饭时间0.5小时。 求各位Excel高手写个公式吧。写得好的,我会加分的哦!
2026年09月23日 22:59
有5个网友回答
网友(1):

=(IF(B217/24,B2-1/24,IF(B2>12/24,B2-0.5/24,B2)))-IF(A2>17/24,A2-1/24,IF(A2>12/24,A2-0.5/24,A2)))*24


如果不以多少个小时的格式显示,而以时间格式显示,将最后的*24去掉,并设置单元格格式为时间格式。

网友(2):

=IF(AND(VALUE(B2)VALUE("17:00")),(C2-B2)*24-1,IF(VALUE(B2)

网友(3):

=IF(AND(ABS(A3)<=ABS($B$1),ABS(B3)>=ABS($C$1)),(IF(B3-A3<0,24-ABS(B3-A3),B3-A3)-TIMEVALUE("01:00")),IF(B3-A3<0,24-ABS(B3-A3),B3-A3)-TIMEVALUE("00:30"))

网友(4):

B4的公式:=LEFT(A4,FIND("-",A4)-1)

C4的公式:=RIGHT(A4,LEN(A4)-FIND("-",A4))

D4的公式:=IF(C4-B4<=0,IF(B4-$B$1<=0,(C4-B4)*24+24-1,IF(B4-$E$1<=0,(C4-B4)*24+24-0.5,(C4-B4)*24+24)),IF(B4-$B$1<=0,IF(C4-$E$1>=0,(C4-B4)*24-1,(C4-B4)*24-0.5),(C4-B4)*24))

 

其实我也是看到这有挑战性才刚学的,呵呵

网友(5):

看完了第一个回答的  基本上满足了你的要求 但是你说需要完整的公式不需要借助辅助列实现的话,公式就会比较复杂比较长。

我写了一个比较长,供参考

IF(RIGHT(A2,FIND("-",A2)-1)>=LEFT(A2,FIND("-",A2)-1),ROUND((RIGHT(A2,FIND("-",A2)-1)-LEFT(A2,FIND("-",A2)-1))*24,2),ROUND(24-(LEFT(A2,FIND("-",A2)-1)-RIGHT(A2,FIND("-",A2)-1))*24,2))