日期和时间的差值计算,跟一般的数值计算有点不一样,因为时间一逝永不回,所以默认情况下不存在负值的概念。
如果非要显示负值行不行呢?
案例:计算两个日期和时间之间的差值,负日期和负时间也要正常显示。
效果如下图 1、2 所示。
解决方案 1:负日期1. 在 C2 单元格中输入以下公式 --> 下拉复制公式:
=DATEDIF(A2,B2,"d")
公式释义:
datedif 的作用是计算两个日期之间相隔的天数、月数或年数;
参数为 datedif(开始日期,结束日期,返回的结果类型);
本公式中的参数 "d" 表示天数
有关该公式的详解,可参阅 Excel函数(五) – 用 datedif 写情书。
对于 datedif 函数来说,如果开始日期大于结束日期,结果将为 #NUM!。
如果要将 #NUM! 变成负数,可以这样设置公式。
2. 将公式修改如下:
=IF(A2<B2,DATEDIF(A2,B2,"d"),-DATEDIF(B2,A2,"d"))
这样修改以后,就能确保 datedif 的参数中的日期始终小的在前,大的在后,能计算出结果;
在逾期的结果前加上“-”号,就成了负数。
通过这个原理,还可以变通一下,将剩余和逾期天数分别显示在两列中。
3. 在 C2 单元格中输入以下公式 --> 下拉复制公式:
=IF(A2<B2,DATEDIF(A2,B2,"d"),"")
4. 在 D2 单元格中输入以下公式 --> 下拉复制公式:
=IF(A2>B2,DATEDIF(B2,A2,"d"),"")
解决方案 2:负时间1. 用 B 列的时间减去 A 列的时间:
正值没有问题,负的就会出现填满单元格的“#”号。
如要显示负时间,可以这样设置。
2. 选择菜单栏的“文件”-->“选项”
3. 在弹出的对话框中选择“高级”--> 勾选“使用 1904 日期系统”--> 点击“确定”
负的时间就显示出来了。