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"))
将结果向上或向下舍入
DATEDIF() 函数总是向下(默认)四舍五入到最接近的整月或整年。
如果要计算四舍五入的月份或年份,请将半个月或半年添加到公式中,如下所示:=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 相同。
如果这有帮助或者还有其他信息,请告诉我。
谢谢。