有没有办法在 Excel 中将小数年份添加到日期?我尝试过类似的方法,=date(2000 + 1.2, 1, 1)
但结果1/1/2001
不是预期的近似值3/14/2001
。
答案1
您可以使用:
=A1 + TRUNC( IF( OR( YEAR(A1) = 2000, MOD( YEAR(A1), 4 )) <> 0, 365, 366 ) *1.2, 0)
该YEAR()
函数提取所涉及的年份,然后让MOD()
函数判断它是否为 2000 年或不能被 4 整除。如果满足任一条件(2000 年或不能被 4 整除),则需要乘以 365 天。否则将得到 366 天。然后将其乘以 1.2,尽管任何数字或任何单元格都可以放在那里。最后,它会在小数点后 0 位被截断,因此只添加整天,然后将其添加到初始值(假定在 A1 中)。
对闰年没有太大的强迫症,对吧?现在你只要把它放在眼前,就可以把它复制出来并粘贴到一个方便的地方,以便将来通过复制和粘贴使用。这是一个快速而简单的测试,可以测试人们可能在合理范围内工作的任何事物,尽管在 2020 年,2000 年的非闰年通常可能不是什么问题。
答案2
将年份的小数部分添加到日期:
- 将年份的整数部分(包括时间值(时、分、秒))转换为相应的天数,并将其添加到给定的日期以获取另一个日期
EDATE(A1,INT(B1*12))+TIMEVALUE( TEXT(A1,"d/m/y h:mm:ss"))
- 将年份的小数部分转换为天数
(EDATE(EDATE(A1,INT(B1*12)),1)-EDATE(A1,INT(B1*12)))*(B1*12-INT(B1*12))
- 将 1 和 2 相加即可得到所需的日期。
完整的工作公式是
=EDATE(A1,INT(B1*12))+TIMEVALUE( TEXT(A1,"d/m/y h:mm:ss"))+(EDATE(EDATE(A1,INT(B1*12)),1)-EDATE(A1,INT(B1*12)))*(B1*12-INT(B1*12))
其中A1
是给定的日期,B1
是要添加的年份。