作业帮 > 综合 > 作业

excel中,已知存入日期、存期月份,如何计算最近的到期日

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/16 13:04:53
excel中,已知存入日期、存期月份,如何计算最近的到期日
存入日期 | 存期(月)| 到期日
2000.1.15 | 24.
2001.2.10 | 12.
2002.3.15 | 12.||?
.
我想让[到期日]一列自动计算最近的到期日
用存入日期+存期月份
如果小于当前日期,就再加一次存期月份,直到大于当前日期,即为最近到期日
第一个到期日=DATE(YEAR(a2),MONTH(a2)+b2,DAY(a2))这个公式我知道,关键是后面如何判断是否大于当前日期,进而计算最近的到期日
我觉得需要用到循环


C 列的公式如下:
=DATE(YEAR(A2),MONTH(A2)+CEILING(DATEDIF(A2,TODAY(),"m"),B2),DAY(A2))

1、DATEDIF(A2,TODAY(),"m")计算A2和当前日期之间的月数
2、CEILING(DATEDIF(A2,TODAY(),"m")/B2,1)  经过多少次存期日期后最近的到期日大于等于当前日期.
用这个公式如果存入日期是瑞年的2月29日,计算出来的到期日期就有可能出现3月1日的情况.
第二行数据就是这样的情况,

用2007版的Edate就不会出现这样的情况.,公式
=EDATE(A2,CEILING(DATEDIF(A2,TODAY(),"m"),B2))


日期是瑞年的2月29日,计算出来的到期日期就有可能出现2月28日的情况,可以用下面的公式
=DATE(YEAR(A2),MONTH(A2)+CEILING(DATEDIF(A2,TODAY(),"m"),B2),DAY(A2))-(DAY(DATE(YEAR(A2),MONTH(A2)+B2*CEILING(DATEDIF(A2,TODAY(),"m")/B2,1),DAY(A2)))<>DAY(A2))*1