度友,datedif函数配合if函数,eomonth函数可以达到目的,
具体公式为:=IF(AND(A2<>"",B2<>""),IF(AND(DAY(A2)=1,DAY(B2)=DAY(EOMONTH(B2,0))),DATEDIF(A2,B2,"M")+1,IF(OR(DAY(A2)=1,DAY(B2)=DAY(EOMONTH(B2,0))),DATEDIF(A2,B2,"M"),DATEDIF(A2,B2,"M")-1)),"")
如有疑问可以继续讨论!
Excel中计算两个日期之间的月数需要用到日期函数:DATEDIF,该函数能够计算两个日期之间的相差的年数、月数、天数。
函数及参数说明
函数:DATEDIF(start_date,end_date,unit)
Start_date:为一个日期,它代表时间段内的第一个日期或起始日期。
End_date:为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit:为所需信息的返回类型。
Unit取不同值的含意:
"Y"——时间段中的整年数。
"M"——时间段中的整月数。
"D"——时间段中的天数。
"YM"——start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
"YD"——start_date 与 end_date 日期中天数的差。忽略日期中的年。
"MD"——start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
举例说明。
开始日期:2012/12/21
结束日期:2014/2/26
在单元格C2中输入公式 =DATEDIF(A2,B2,"Y")
在单元格D2中输入公式 =DATEDIF(A2,B2,"YM")
在单元格E2中输入公式 =DATEDIF(A2,B2,"MD")
在单元格F2中输入公式 =DATEDIF(A2,B2,"D")
结果说明。
2012/12/21与2014/2/26之间相隔1年、2个月、零5天,即14个月、零5天,总共相隔432天。
公式:
=YEAR(B1)*12+MONTH(B1)-YEAR(A1)*12-MONTH(A1)-IF(DAY(A1)=1,DAY(B1+1)<>1,DAY(B1) 示例: 能判断大小月、以及2月闰平年
只有完整的一个月才算1,那么请试试以下公式
=(YEAR(B1)-1900)*12+MONTH(B1)+IF(DAY(B1+1)=1,1,0)-((YEAR(A1)-1900)*12+MONTH(A1)+IF(DAY(A1)=1,0,1))
你的这个问题中,(某天是不是该月的第一天很容易判断)
碰到的难题就是:如何判断某天是不是该月的最后一天。
这里用到的技巧就是:用某一天再加上一天,看它是不是1日,如果是1日,则它是该月的最后一天,否则不是最后一天,
公式中的1900也可以不要,,,-------------祝您办公愉快
=(DAY(A1)=1)+SUMPRODUCT(DAY(A1+ROW(INDIRECT("a1:a"&B1-A1)))=1)-(DAY(B1)<>DAY(EOMONTH(B1,0)))