尝试计算excel中的续订日期

时间:2014-08-12 14:54:45

标签: excel excel-formula

有几个不同的租赁期(1,3,6个月到1,5,5年)。目前我有一个列有最后一个续订日期的列和一个列表示更新期间是什么。我希望excel根据所选的续订类型计算更新日期。我的第一次尝试是将更新类型转换为某种类似的面额,但我试图弄清楚要使用的值/格式。

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   

6 个答案:

答案 0 :(得分:3)

[Excel将日期存储为浮点数。它们每天前进1,小数部分保持日分数,例如0.5是中午。精确值 可在1900年到1904年之间进行用户配置,这可能会使事情复杂化。请注意,在1900年的原点中,定义了日期60(对应于不存在的日期29-Feb-1900)。闰秒没有实现。]

如果您可以容忍第二列为整数月,则使用EDATE函数。

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

单元格=EDATE(A2, B2)中的

C2并向下复制。

答案 1 :(得分:0)

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

所以

   `TblDate
 Lookup Days
 1mo    30
 ..     ..`

=VLOOKUP(B1,TblDate,2,FALSE)+A1

答案 2 :(得分:0)

也许试试:

=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)))

答案 3 :(得分:0)

有一种方法可以使用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年之间的任何事情,并不关心第一个数字是一位还是两位数,以及该单词是月,月,年还是年 - 它将与所有单词一起使用,如{{1删除空格(因此允许一个字符和一个空格或两个字符),TRIM()是通配符(因此允许*x years)。

要使xz year正常工作,您需要确保将数字格式设置为日期类型。

注意:需要一个额外的几个月的单元格 - 所以它可能需要一些重新排列,但使用 CTRL + C 或右下角的复制单元工具选定单元格的内容很容易复制,每个单元格都会自动转换它。

答案 4 :(得分:0)

D2 中输入:

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

并复制

E2 中输入:

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

并复制

最后在 C2 中输入:

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

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

demo

答案 5 :(得分:0)

创建一个新列并在格式框中键入

 =B2+1095 

获取续订日期

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

这是最简单的方式,对我有用!