在C1输入=IF((YEAR(A1)=YEAR(B1))*(MONTH(A1)=MONTH(B1)),0,(YEAR(B1)-YEAR(A1))*12+MONTH(B1)+IF(DAY(B1)-15>0,1,0.5)-(MONTH(A1)+IF(DAY(A1)-15>0,1,0.5)))+0.5
为了让你好理解,将公式拆解为如下:=IF(X,0,Y)如果条件X成立,返回0,否则返回Y
其中X为(YEAR(A1)=YEAR(B1))*(MONTH(A1)=MONTH(B1))意思是如果A1的年份和B1的相同且A1的月份和B1的月份相同每个等式会返回TRUE(真)后者FALSE(假),真*真为真,其他情况为假。
Y为(YEAR(B1)-YEAR(A1))*12+MONTH(B1)+IF(DAY(B1)-15>0,1,0.5)-(MONTH(A1)+IF(DAY(A1)-15>0,1,0.5))+0.5简化为P-Q+0.5P为(YEAR(B1)-YEAR(A1))*12+MONTH(B1)+IF(DAY(B1)-15>0,1,0.5)Q为MONTH(A1)+IF(DAY(A1)-15>0,1,0.5)意思把A1、B1分别转化为两个小数,整数部分代表月,小数部分代表半个月。
Q好理解:A1的月份加上,如果A1的日比15大就是1,小于等于15为0.5。
P一样,只是考虑了年的影响:(YEAR(B1)-YEAR(A1))*12,即年份的差乘以12(1年12个月)
最后一个0.5是因为你要求连“皮”计算(比如1号到2号是几天,有人认为是1,有人认为是2-1+1共2天)。
温馨提示:答案为网友推荐,仅供参考