报表知识库
我要提问

自动扩展日期

对于一串有规律的数字,如果靠手动填写就显的机械化。例如,一年有十二个月,一个月有多少天都是有规律的,对于这样的数字我们可以用to函数去实现,但是如果随便输入一个年份,随便输入一个月份,自动扩展出来该年对应的该月有多少天这个需求如何实现呢,下面简单介绍一下。

实现这个需求的思路是:首先判断出哪年是润年,将润年中的特殊天数特殊处理,其次按照规律设置每个月的天数,最后用函数计算从给定的日期相差n天后的新的日期数据,然后从指定日期到新日期自动扩展。

实现步骤:

制作报表:如图所示:

 1011

第一步:设置每个月天数;

A1单元格中内容为:

case(@arg2,1,”31″,2,”29″,3,”31″,4,”30″,5,”31″,6,”30″,7,”31″,8,”31″,9,”30″,10,”31″,11,”30″,12,”31″)

根据月份判断该月的天数。

第二步:计算参数是否是润年,如果是则对二月份进行判断;

A2单元格内容为:

if(@arg1%4!=0&&@arg2==2,to(1,int(A1)-1),to(1,int(A1)))

arg1为年份,arg2为月份。

第三步:用函数计算日期差;

B2单元格中表达式为:

relDate(B1,A2-1)

realDate函数说明:从给定的日期型数据中,算出相差n天后的新的日期数据。参数说明: 第一个参数:给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,第二个参数为整数表达式,是需要求得nExp天后的新日期。

B1单元格为年份和月份拼成的日期类型,

A2单元格为当月天数的扩展。

预览效果如下图所示:

 1021

 1031

1041

1051

如图所示,按照以上的步骤,就可以实现随便输入一个年份、月份,自动扩展出来该年对应的该月的每一天。