为什么 DATEDIF 对这些值返回不同的结果?

为什么 DATEDIF 对这些值返回不同的结果?

ExcelDATEDIF函数(带有返回月份数的选项)对于两对日期值返回不同的值,即使日期属于同一月份。
在 C 列中,我使用=IF(A1="","-",DATEDIF($A1,$B1,"m")) + 1

    A            B         C
10-Nov-17    9-May-21     42
10-Nov-17   10-May-21     43

我的问题:
如何使 C2 返回42
如何使 C 列返回42而不+1在公式末尾使用?

答案1

如果两个日期单元格都是同一天,则结果为 1。结果在下个月的同一天变为 2。因此,10-nov 到 9-dec 返回 1,10-nov 到 10-dec 返回 2,而不是 1。同样的原则适用于您的样本数据。

第 1 行是第 10 到第 9 个数字,返回 42,但第 2 行是第 10 到第 10 个数字,因此滚动到下一个数字,即 43。

这就是 DateDiff 的工作原理。

如果您想更改返回的值,则必须根据您的个人规则调整公式,就像您通过添加 1 所做的那样。

答案2

如果你想计算日历两个日期之间的月份数,可以通过将每个日期更改为相应月份的第一天来实现。为此,从日期中减去月份的日期,然后加 1。

所以公式就变成了

=IF($A1="","-",DATEDIF($A1-DAY($A1)+1,$B1-DAY($B1)+1,"m"))

答案3

根据这个地点,我应该将公式改为
=IF(A1="","-",DATEDIF($A1,$B1+15,"m"))

将结果向上或向下舍入

  1. DATEDIF() 函数总是向下(默认)四舍五入到最接近的整月或整年。

  2. 如果要计算四舍五入的月份或年份,请将半个月或半年添加到公式中,如下所示:=DATEDIF(A19,B19+15,”m”) 表示半个月(或 15 天)或 =DATEDIF(A21,B21+183,”y”) 表示半年(或 183 天)。结果现在四舍五入到最接近的月份或年份。

答案4

我有两个日期,需要找出它们之间的月份数:

  • 日期 1 (在单元格 B3 中):04/25/2020
  • 日期 2 (在单元格 C12 中):04/02/2024

所以根据上面的例子我应该得到结果48。

但是,如果我使用建议的公式(标记为答案,建议添加 15 天),它仍然会给我 47,因为即使我将 15 添加到 02(即 C12 的天数)它仍然小于 25(即 B3 的天数)。

因此我使用以下公式来获得正确的结果:

=IF(B3="","-",IF(DAY(B3)<=DAY(C12),DATEDIF(B3,C12,"m")+1),DATEDIF(B3,DATE(YEAR(C12),MONTH(C12),DAY(B3)),"m")))

所以我上面所做的是,如果 B3 的日期大于 C12 的日期,我将 C12 的日期设置为与 B3 相同。

如果这有帮助或者还有其他信息,请告诉我。

谢谢。

相关内容