如何按条件计算两个日期/时间之间的小时数或天数?
如何按条件计算两个日期/时间之间的小时数或天数?
没问题,这个需求用Excel的IF函数就能完美解决!
核心思路很简单:先判断两个日期时间的差值是否达到1天(Excel里日期差值的1就代表24小时),如果满足就直接显示天数;如果不足1天,就把差值转换成小时数。
直接用这个公式就行:
=IF((B1-A1)>=1, B1-A1, (B1-A1)*24)
我给你拆解下这个公式的逻辑:
(B1-A1)>=1:这部分用来判断时间差是否大于等于24小时(也就是1天)- 如果条件成立,就返回
B1-A1的原始值,也就是天数(比如3.5天) - 如果条件不成立,就执行
(B1-A1)*24,把天数单位转换成小时数(比如0.5天就变成12小时)
举两个实际例子验证下:
假设A1是2024/5/1 10:00,B1是2024/5/1 22:00,差值是0.5天,公式会返回12(小时)
要是A1是2024/5/1 10:00,B1是2024/5/4 20:00,差值是3.5天,公式就直接返回3.5(天数)
如果你想让结果的小数位数更整齐,还可以套个ROUND函数来保留指定小数位,比如保留两位小数的话:
=IF((B1-A1)>=1, ROUND(B1-A1,2), ROUND((B1-A1)*24,2))
备注:内容来源于stack exchange,提问作者hearsay




