2016-03-31 155 views
1

我有在列不同日期的,從2014年4月至2017年四月嵌套如果和公式在Excel

範圍,我需要根據年份和月份指定一個數字的excel文件 - 2014年4月23並且每個月都會下降1。所以2014年5月是22,2014年6月是21等等。一旦我到了2016年3月,或者0,所有比這更大的日期也是0.我的問題是,Excel的治療方法是2014年4月和2015年4月相同 - 它們都返回值爲23.

這是我的代碼:

=IF(AND(MONTH(A2)=4,YEAR(A2=2014)),"23",IF(AND(MONTH(A2)=5,YEAR(A2=2014)),"22",IF(AND(MONTH(A2)=6,YEAR(A2=2014)),"21",IF(AND(MONTH(A2)=7,YEAR(A2=2014)),"20",IF(AND(MONTH(A2)=8,YEAR(A2=2014)),"19",IF(AND(MONTH(A2)=9,YEAR(A2=2014)),"18",IF(AND(MONTH(A2)=10,YEAR(A2=2014)),"17",IF(AND(MONTH(A2)=11,YEAR(A2=2014)),"16",IF(AND(MONTH(A2)=12,YEAR(A2=2014)),"15",IF(AND(MONTH(A2)=1,YEAR(A2=2015)),"14",IF(AND(MONTH(A2)=2,YEAR(A2=2015)),"13",IF(AND(MONTH(A2)=3,YEAR(A2=2015)),"12",IF(AND(MONTH(A2)=4,YEAR(A2=2015)),"11",IF(AND(MONTH(A2)=5,YEAR(A2=2015)),"10",IF(AND(MONTH(A2)=6,YEAR(A2=2015)),"9",IF(AND(MONTH(A2)=7,YEAR(A2=2015)),"8",IF(AND(MONTH(A2)=8,YEAR(A2=2015)),"7",IF(AND(MONTH(A2)=9,YEAR(A2=2015)),"6",IF(AND(MONTH(A2)=10,YEAR(A2=2015)),"5",IF(AND(MONTH(A2)=11,YEAR(A2=2015)),"4",IF(AND(MONTH(A2)=12,YEAR(A2=2015)),"3",IF(AND(MONTH(A2)=1,YEAR(A2=2016)),"2",IF(AND(MONTH(A2)=2,YEAR(A2=2016)),"1",IF(AND(MONTH(A2)=3,YEAR(A2=2016)),"0",IF(AND(MONTH(A2)>3,YEAR(A2=2016)),"0","0"))))))))))))))))))))))))) 

任何幫助,非常感謝!

回答

0

我會使用yearfrac來代替。你的約會(A2)和日期(2016,3,1)之間

=IF(A2>DATE(2016,3,1),0,ROUND(YEARFRAC(DATE(YEAR(A2),MONTH(A2),1),DATE(2016,3,1))*12,0)) 

YEARFRAC會給你一年的兩者之間,您可以通過12和圓形乘得到月份數的部分。 if語句將在3月份之後處理幾個月。

0

試試這個:

=IF(A2<Date(2016,3,1),DATEDIF(A2,DATE(2016,3,1),"m"),0)