Excel中如何在一列输入基准日期,往后列递增一年或者半年,最终需要的表格样式如图片?

如题所述

在C2中输入或复制粘贴下列公式

=DATE(YEAR(D2)-1,12,31)

左拉填充。

在C3中输入或复制粘贴下列公式

=EDATE(D3,-12)

左拉填充。

在E3中输入或复制粘贴下列公式

=EDATE(D3,12)

右拉填充

● 格式均设置为短日期或长日期格式。

追问

假如我的基准日是2019年6月30,那么后两列我需要显示的是以2019年6月30日为分界线,后一列为2019年1-6月,之后一列显示为2019年7-12月

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-15
如果生成文本,可以使用 year,month,day,date,datedif,eomonth等函数+计算+文本组合。生成你需要的文本。
具体的与具体需要有关。
例如只加月份的话, 可以用MONTH就可以。
如果带年份的话, 可以用year+month+eomonth等函数来处理。相差特定年月的话, 可以用DATEDIF函数解决。
当然, 也可以使用VBA代码来解决, 可以随心所欲了。
第2个回答  2020-02-14
用DATE函数来折腾吧
如基准日期在单元格A1,为标准的日期格式 2019-6-2
递增一年就是 =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))
递增半年就是 =DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))追问

假如我的基准日是2019年6月30,那么后两列我需要显示的是以2019年6月30日为分界线,后一列为2019年1-6月,之后一列显示为2019年7-12月

追答

公式类似于
=IF(MONTH(A1)=12,"",TEXT(DATE(YEAR(A1),MONTH(A1)-5,DAY(A1)),"e年m-")&MONTH(A1)&"月")
=IF(MONTH(A1)=12,"",TEXT(DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)),"e年m-")&MONTH(A1)+6&"月")

本回答被提问者和网友采纳
第3个回答  2020-02-14
首先你要填的应该是时间格式的年月日,不能是文本

然后你百度EDATE,这个函数就能做到你要的功能。我只简要说下,=EDATE(B1,12)表示B1单元格的时间后12个月的日期
第4个回答  2020-02-14
能替换的格式功能就行了