Excel TIME函数超24小时出错,求拼接3个数值为HH:MM:SS格式的替代方案
解决方案
首先明确问题根源:Excel的TIME函数本身存在固定限制——当传入的小时参数大于等于24时,会自动对24取模再计算返回值,因此即便你将单元格设置为[HH]:MM:SS格式,也无法得到正确的超24小时时长展示,限制来自函数逻辑本身,和单元格格式无关。
你可以直接放弃TIME函数,利用Excel时间的底层存储规则来实现需求:Excel中时间本质是以「天」为单位的小数,1小时=1/24天,1分钟=1/(2460)=1/1440天,1秒=1/(2460*60)=1/86400天,直接将三个时间参数换算为天的小数相加即可。
替换后的公式
你只需要将原来的TIME结构替换为直接计算的结构即可:
= FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7))))/24 + ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7))))) * 60,60)/1440 + ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7))))) * 3600,60)/86400
如果你的Excel区域设置使用分号作为公式参数分隔符,将上面公式中的逗号替换为分号即可。
后续操作
公式输入完成后,选中对应单元格,设置自定义数字格式为[hh]:mm:ss,即可正常显示超过24小时的时长,你示例中的25小时场景会正确输出25:27:17。
内容的提问来源于stack exchange,提问作者Gobban
相关产品推荐
相关产品推荐

