尝试在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 years
或xz year
)。
对于EDATE
工作,你需要确保数字格式设置为datetypes。
注意:需要额外的单元格,因此可能需要一些重新排列,但使用CTRL + C或复制单元格工具在选定单元格的右下angular将很容易复制它,并且每个单元格将自动转换它。
创build一个新的列并在formaula框中键入
=B2+1095
获取更新date
1年365年2年730年3年1095年等等等等。
这是最简单的方法,为我工作!