Google Sheets计算日期差为年日时分格式 同年份报错如何修复
Google Sheets时间差格式显示问题修复方案
错误原因
自定义格式里的yy参数是把时间差的数值当做绝对日期序列号解析,而非时间差的累计年数。Google Sheets的日期序列号起始值为1899年12月30日,当起止日期同年、差值小于1年时,差值序列号对应的年份落在1900年前后,所以会错误显示为99年、00年这类无效结果。
修复方法
直接使用公式计算拼接时间差即可,无需额外设置单元格自定义格式,公式如下:
=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YD")&"天"&HOUR(B1-A1)&"小时"&MINUTE(B1-A1)&"分钟"
参数说明
DATEDIF(A1,B1,"Y"):自动计算两个日期之间的完整周年数DATEDIF(A1,B1,"YD"):自动计算忽略年份后,两个日期的剩余天数差HOUR(B1-A1)、MINUTE(B1-A1):分别提取时间差的小时、分钟数值
可选优化
如果不想在同年差值时显示0年,可以加判断条件修改公式:
=IF(DATEDIF(A1,B1,"Y")>0,DATEDIF(A1,B1,"Y")&"年","")&DATEDIF(A1,B1,"YD")&"天"&HOUR(B1-A1)&"小时"&MINUTE(B1-A1)&"分钟"
如果需要给小时、分钟补前导零(比如1小时显示为01小时),可以用TEXT函数格式化数值:
=IF(DATEDIF(A1,B1,"Y")>0,DATEDIF(A1,B1,"Y")&"年","")&DATEDIF(A1,B1,"YD")&"天"&TEXT(HOUR(B1-A1),"00")&"小时"&TEXT(MINUTE(B1-A1),"00")&"分钟"
内容的提问来源于stack exchange,提问作者acr
相关产品推荐
相关产品推荐

