尝试在Excel中计算更新date

有几个不同的租赁期(1,3,6个月到1,3,5年)的项目。 就目前而言,我有一个列有最后更新date的列和一个列表示更新期限的列。 我希望Excel可以根据所select的更新types来计算更新date。 我的第一个尝试是将更新types转换为一些相似的面额,但我试图找出使用什么值/格式卡住了。

Last renewal date Renewal Type Renewal Date 11/11/2013 1 Year 2/14/2014 2 Years 8/28/2011 5 Years 11/27/2013 3 Months 

Excel将date存储为浮点数。 他们每天前进1,小数部分保持日间分数,例如0.5是正午。 确切的值用户可以在1900到1904年的起源,这可能会使事情复杂。 请注意,在1900年的起源中,定义了date60(对应于不存在date1900年2月29日)。 闰秒未实现。]

如果你可以容忍第二列是整数月份,那么使用EDATE函数。

例如,如果您的表格在单元格A1上定位,请使用

=EDATE(A2, B2)单元格C2 =EDATE(A2, B2) ,并向下复制。

我会在第三列中使用一个Vlookup,它应该指向一个将1年/ 6mos转换为几天的表格。 (365,180,等)。 然后,只需将该vlookup添加到原始date。

所以

  `TblDate Lookup Days 1mo 30 .. ..` =VLOOKUP(B1,TblDate,2,FALSE)+A1 

也许尝试:

 =IF(ISERROR(FIND("year",B2)),DATE(YEAR(A2),MONTH(A2)+LEFT(B2,1),DAY(A2)),DATE(YEAR(A2)+LEFT(B2,1),MONTH(A2),DAY(A2))) 

D2中input:

 =--MID(B2,1,FIND(" ",B2)) 

并抄下来

E2中input:

 =MID(B2,FIND(" ",B2)+1,1) 

并抄下来

最后在C2中input:

 =IF(E2="Y",DATE(YEAR(A2)+D2,MONTH(A2),DAY(A2)),DATE(YEAR(A2),MONTH(A2)+D2,DAY(A2))) 

C2格式化为date并复制下来。 例如:

演示

有一种方法可以使用Excel将第二列转换为纯月格式:

 =IF(COUNTIF(B2,"*Year*"),(TRIM(LEFT(B2,2)))*12,IF(COUNTIF(B2,"*Month*"),TRIM(LEFT(B2,2)),NA())) 

这可以用于EDATE() 。 例如,假设上面的代码在单元格C2中,它会产生12 。 然后,你可以在D2格,你可以放

 EDATE(A2,C2) 

在那里。 代码适用于1个月到99年之间的任何事情,并不关心第一个数字是一位还是两位数,以及这个单词是月份,月份,年份还是年份 – 它可以与所有的一起工作,如TRIM()删除空格(从而允许一个字符和一个空格或两个字符), *是通配符(因此允许x yearsxz year )。

对于EDATE工作,你需要确保数字格式设置为datetypes。

注意:需要额外的单元格,因此可能需要一些重新排列,但使用CTRL + C或复制单元格工具在选定单元格的右下angular将很容易复制它,并且每个单元格将自动转换它。

创build一个新的列并在formaula框中键入

  =B2+1095 

获取更新date

1年365年2年730年3年1095年等等等等。

这是最简单的方法,为我工作!