谷歌表格中计算含时分秒的日期时间间隔(无需脚本)
Google Sheets 无脚本实现日期时间完整间隔格式化
假设你的开始日期时间在单元格A1,结束日期时间在B1,以下是两种格式的实现方案:
格式1:「X年、X个月、X天、X小时、X分钟、X秒」
基础版(显示所有部分,含零值)
直接拼接各时间单位:
=DATEDIF(A1,B1,"Y")&"年、"&DATEDIF(A1,B1,"YM")&"个月、"&DATEDIF(A1,B1,"MD")&"天、"&HOUR(MOD(B1-A1,1))&"小时、"&MINUTE(MOD(B1-A1,1))&"分钟、"&SECOND(MOD(B1-A1,1))&"秒"
优化版(自动隐藏零值部分)
用TEXTJOIN忽略空值,避免显示「0年、」这类冗余内容:
=TEXTJOIN("、",TRUE, IF(DATEDIF(A1,B1,"Y")>0,DATEDIF(A1,B1,"Y")&"年",), IF(DATEDIF(A1,B1,"YM")>0,DATEDIF(A1,B1,"YM")&"个月",), IF(DATEDIF(A1,B1,"MD")>0,DATEDIF(A1,B1,"MD")&"天",), IF(HOUR(MOD(B1-A1,1))>0,HOUR(MOD(B1-A1,1))&"小时",), IF(MINUTE(MOD(B1-A1,1))>0,MINUTE(MOD(B1-A1,1))&"分钟",), IF(SECOND(MOD(B1-A1,1))>0,SECOND(MOD(B1-A1,1))&"秒",) )
格式2:「01 02 02 23:05:05」(补零的固定格式)
用TEXT函数统一补零,拼接成指定格式:
=TEXT(DATEDIF(A1,B1,"Y"),"00")&" "&TEXT(DATEDIF(A1,B1,"YM"),"00")&" "&TEXT(DATEDIF(A1,B1,"MD"),"00")&" "&TEXT(MOD(B1-A1,1),"HH:MM:SS")
关键逻辑说明
- 年/月/日提取:用
DATEDIF的三个参数分别获取:Y:完整年数YM:去除年数后的剩余月数MD:去除年、月后的剩余天数
- 时/分/秒提取:
B1-A1得到总天数(整数+小数),小数部分代表当天的时间占比MOD(B1-A1,1)提取小数部分的时间值,再用HOUR/MINUTE/SECOND提取对应单位,或直接用TEXT转成HH:MM:SS格式
- 错误处理:如果结束日期早于开始日期,
DATEDIF会报错,可添加IFERROR包裹公式,比如:
=IFERROR(TEXTJOIN("、",TRUE,...),"结束日期不能早于开始日期")
内容的提问来源于stack exchange,提问作者IMTheNachoMan
相关产品推荐
相关产品推荐

