在Excel,
如要求1天都不能有误差,
任何计算公式,
同时涉及月和日的数量,
都是会非常长及复杂的
方法:
1.)
先用
DATEDIF
函数
计算完整月数:
=DATEDIF(A1,B1,"m")
2.)
如
B1的日是大于A1的日:
分子是
DAY(B1)-DAY(A1)
分母是
B1该月的总天数,公式是
=DAY(DATE(YEAR(B1),MONTH(B1)+1,1)-1)
小数值
是
分子/分母,
即
=(DAY(B1)-DAY(A1))/DAY(DATE(YEAR(B1),MONTH(B1)+1,1)-1)
3.)
如B1的日是少于A1的日:
分子是
DAY(B1)-DAY(A1)
+
B1
上一个月份的天数
分母是
B1
上一个月份的总天数,公式是
=DAY(DATE(YEAR(B1),MONTH(B1),1)-1)
小数值
是
分子/分母,
即
=(DAY(B1)-DAY(A1)+DAY(DATE(YEAR(B1),MONTH(B1),1)-1))/DAY(DATE(YEAR(B1),MONTH(B1),1)-1)
将以上三条公式合并,
便是楼主要的答案,
1天都不会偏差
=DATEDIF(A1,B1,"M")+IF(DAY(B1)>=DAY(A1),(DAY(B1)-DAY(A1))/DAY(DATE(YEAR(B1),MONTH(B1)+1,1)-1),IF(DAY(B1)
或
9.892857143(月)
补充:
公式太长了,
我刚将公式简化如下:
=DATEDIF(A1,B1,"M")+DATEDIF(A1,B1,"MD")/DAY(DATE(YEAR(B1),MONTH(B1)+IF(DAY(B1)>=DAY(A1),1,0),1)-1)
由于考虑到很多网友的Excel都没有EOMONTH函数,
故没有将此函数加在我的答案上,
反正公式亦短不了多少
补充:
2.)
C1
输入
=Datedif(A1,B1,”M”),
显示整月部分
D1输入
=Datedif(A1,B1,”MD”),
显示不足1月的整日部分
另再提供:
=Datedif(A1,B1,”Y”),
显示整年部分
=Datedif(A1,B1,”YM”),
显示不足1年的整月部分
=Datedif(A1,B1,”D”),
显示整日部分