需用多种Excel方法统计员工工时:一、基础相减乘24得小时;二、MOD函数处理跨天;三、TEXT/HOUR/MINUTE分离显示;四、IF逻辑扣除午休;五、[h]:mm格式累计总时长。

如果您需要在Excel中统计员工每日实际工作时长,并生成规范的工时计算表,则需处理时间差、跨天、午休剔除及小时数转换等关键环节。以下是实现该目标的多种方法:
一、使用基础时间相减公式计算工时
该方法适用于上下班时间在同一日内、且无午休断点的常规场景。Excel将时间存储为小数(1天=1),因此直接相减可得以“天”为单位的工时,再乘以24即可转为小时数。
1、在上班时间列(如C2)和下班时间列(如D2)分别输入标准时间格式,例如“8:30”和“17:45”。
2、在工时列(如E2)输入公式:=(D2-C2)*24。
3、按Ctrl+Enter批量填充整列,结果将以小数形式显示小时数(如9.25代表9小时15分钟)。
4、选中结果列,右键→“设置单元格格式”→“数字”→“数值”,小数位数设为2,确保显示精度。
二、使用MOD函数处理跨夜班工时
当员工下班时间落在次日(如夜班02:00),直接相减会产生负值。MOD函数可自动对时间差取模,规避日期逻辑错误,确保结果恒为正。
1、确保C2(上班)、D2(下班)均为含日期的时间值(如“2026/3/9 22:00”和“2026/3/10 02:30”)。
2、在工时列(如F2)输入公式:=MOD(D2-C2,1)*24。
3、将F列格式设为“数值”,保留两位小数。
4、该公式对所有跨零点情形均有效,无需额外判断日期是否变更。
三、用TEXT与HOUR+MINUTE组合提取整数小时与分钟
若需分离显示“X小时Y分钟”而非小数小时,可借助文本函数构造可读性强的结果字符串,便于打印或汇报。
1、在G2单元格输入公式:=TEXT(D2-C2,"[h]小时mm分钟")。
2、确保D2-C2结果单元格格式为“常规”或“时间”,避免因格式导致TEXT输出异常。
3、若仅需整数小时部分(向下取整),在H2输入:=HOUR(D2-C2)+FLOOR(MINUTE(D2-C2)/60,1)。
4、若需四舍五入到最近半小时,在I2输入:=ROUND((D2-C2)*48,0)/2(单位:小时)。
四、构建带午休扣除的动态工时表
当企业规定中午12:00–13:00为固定休息时段,需从总时长中精确减去60分钟,且不因打卡时间微小偏差导致误扣。
1、在J2输入原始工时:=MOD(D2-C2,1)。
2、在K2输入午休起止时间(如“12:00”和“13:00”),在L2计算午休时长:=TIME(1,0,0)。
3、在M2输入有效工时公式:=IF(AND(C2=TIME(13,0,0)),J2-L2,IF(D2>C2,J2,J2+1-L2))。
4、在N2将有效工时转为小时:=M2*24,并设为数值格式。
五、设置工时列自动格式为“[h]:mm”显示累计时长
当需对多日工时求和并显示总时长(如“86小时32分钟”),必须使用特殊时间格式,否则超过24小时会归零重计。
1、选中存放工时结果的整列(如E2:E100)。
2、右键→“设置单元格格式”→“数字”→“自定义”。
3、在“类型”框中输入:[h]:mm,点击“确定”。
4、此时若E2输入“8:30”、E3输入“9:45”,在E4用公式“=SUM(E2:E3)”得出结果为“18:15”,而非“18:15 AM”或错误值。











