不足月的,按天数除当月总天数计算比例。比如2019/12/3至2020/4/28,月份数=29/31+3+28/30=4.89。感谢!!
DATEDIF函数可以返回两个日期之间的年\月\日间隔数。使用DATEDIF函数可以计算两日期之差。函数结构为:
DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit 为所需信息的返回类型(注:结束日期必须大于起始日期),使用方法通常如下:
=DATEDIF(A1,TODAY(),"Y")计算年数差
=DATEDIF(A1,TODAY(),"M")计算月数差
=DATEDIF(A1,TODAY(),"D")计算天数差
所以如果要返回2个日期的月数,则unit的类型为"M"即可,例如:计算2015-9-11和2015-12-3之间的月数,输入函数DATEDIF(A1,B1,"M")即可,当然这里的月数是忽略天数的,只计算月数之差
近似公式:
=(B1-A1)*12/365
虽然能获取这样的小数计数,但是对于同年日期的差距计算也是不近合理的。
如果计算不完整月的当月总天数作为小分母,会是个很长的公式(判断闰年闰月、30或31,判断开始日期的月份是否大于终止日期月份,同样的判断开始日期的日是否大于终止日期日)。
=ROUND((EOMONTH(A2,0)-A2+1)/DAY(EOMONTH(A2,0))+(MONTH(B2)-MONTH(A2)-1)+12*(YEAR(A2)<YEAR(B2))+DAY(B2)/DAY(EOMONTH(B2,0)),2)
追问首先很感谢,我试了一下然后发现不连续年份算出来的月份数有差距,您这个公式我不是很懂,是需要在那个“12”修改吗?
=ROUND((EOMONTH(A2,0)-A2+1)/DAY(EOMONTH(A2,0))+DATEDIF(EOMONTH(A2,0)+1,EOMONTH(B2,-1),"M")+DAY(B2)/DAY(EOMONTH(B2,0)),2)
本回答被提问者采纳