You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中如何计算dd/mm/yyyy hh:mm格式单元格的时间差?

这问题我之前帮好几个朋友解决过,Excel这默认的日期时间格式确实有点坑人——其实核心原因是Excel把所有日期时间都存成了数值:整数部分是从1900年1月1日开始算的天数,小数部分是当天的时间占比。你用=C3-B3算出的差值本质是一个日期时间数值,默认格式就会把这个数值转成完整的日期时间,所以才会带出1900年1月的前缀。

解决方法

方法1:自定义单元格格式(推荐,保留数值属性)

这是最方便的方式,既能保留差值的数值特性(方便后续计算),又能显示成你要的“天、时、分”格式:

  • 选中所有计算差值的单元格
  • 右键选择「设置单元格格式」(或者按Ctrl+1快捷键)
  • 切换到「自定义」标签页,在类型框里输入对应的格式代码:
    • 如果你要显示X天X时X分(比如3天5小时20分),用:d"天" h"时" mm"分"
    • 如果差值可能不足1天(比如只有25小时),想直接显示累计小时数(比如25时20分),用:[h]"时" mm"分"(方括号的作用是累计超过24小时的小时数,不加的话会把25小时拆成1天1小时)
    • 要是需要更严谨的补零格式(比如05时03分),就用d"天" hh"时" mm"分"
  • 点击确定,瞬间就看不到1900年的前缀了!

方法2:用TEXT函数直接生成文本结果

如果不需要后续对差值进行计算,只想得到纯文本格式的“天、时、分”,可以直接用TEXT函数格式化公式结果:

=TEXT(C3-B3,"d""天"" h""时"" mm""分""")

这里的双引号是Excel里的转义写法,确保输出的文本里包含“天”“时”“分”这些字。如果要处理负数差值(比如结束时间早于开始时间),可以套个ABS函数:

=TEXT(ABS(C3-B3),"d""天"" h""时"" mm""分""")

额外提醒

如果差值是负数,自定义格式可能会显示乱码(比如########),这时候可以先判断差值正负,再设置不同的格式:

=IF(C3-B3>=0,TEXT(C3-B3,"d""天"" h""时"" mm""分"""),"负"&TEXT(ABS(C3-B3),"d""天"" h""时"" mm""分"""))

内容的提问来源于stack exchange,提问作者paradroid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:52:42