如何调整Google Sheets数组公式将结果输出为hh:mm:ss格式
公式修改方案:直接输出hh:mm:ss格式工时
原公式通过正则提取A2:G2区域内的上下班时间,自动识别跨天班次计算时长,最终乘以24输出小时数值。要直接得到时分秒格式结果,只需要移除数值转换逻辑,增加格式指定函数即可。
原公式参考
=ARRAYFORMULA( SUM( IFERROR( IF( --REGEXEXTRACT(A2:G2,"- (\d+:\d+)")<(--REGEXEXTRACT(A2:G2,"^(\d+:\d+)")), 1+REGEXEXTRACT(A2:G2,"- (\d+:\d+)")- REGEXEXTRACT(A2:G2,"^(\d+:\d+)"), REGEXEXTRACT(A2:G2,"- (\d+:\d+)")- REGEXEXTRACT(A2:G2,"^(\d+:\d+)")))* 24))
参考效果截图:
修改后公式
基础版(单统计周期总工时≤24小时)
移除原公式末尾的*24(该逻辑是将表格原生天级时间单位转换为小时数值,时间格式计算不需要该步骤),在求和结果外嵌套TEXT函数指定输出格式:
=ARRAYFORMULA( TEXT( SUM( IFERROR( IF( --REGEXEXTRACT(A2:G2,"- (\d+:\d+)")<(--REGEXEXTRACT(A2:G2,"^(\d+:\d+)")), 1+REGEXEXTRACT(A2:G2,"- (\d+:\d+)")- REGEXEXTRACT(A2:G2,"^(\d+:\d+)"), REGEXEXTRACT(A2:G2,"- (\d+:\d+)")- REGEXEXTRACT(A2:G2,"^(\d+:\d+)")))), "hh:mm:ss"))
适配版(支持总工时超过24小时)
如果统计周期内累计工时超过24小时,将格式符修改为[hh]:mm:ss即可正常显示累计小时数,不会出现满24小时自动进位清零的问题:
=ARRAYFORMULA( TEXT( SUM( IFERROR( IF( --REGEXEXTRACT(A2:G2,"- (\d+:\d+)")<(--REGEXEXTRACT(A2:G2,"^(\d+:\d+)")), 1+REGEXEXTRACT(A2:G2,"- (\d+:\d+)")- REGEXEXTRACT(A2:G2,"^(\d+:\d+)"), REGEXEXTRACT(A2:G2,"- (\d+:\d+)")- REGEXEXTRACT(A2:G2,"^(\d+:\d+)")))), "[hh]:mm:ss"))
公式输入完成后直接回车即可生效,无需额外调整单元格格式,输出结果为标准
hh:mm:ss格式文本。
内容的提问来源于stack exchange,提问作者mau
相关产品推荐
相关产品推荐

