1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 应用场景
查询起止日期后,有时需要自动返回所有中间日期。
一般情况下,用户可以使用RANGE函数,将日期转换为数字,然后进行补全。但当跨月查询时,日期需要增加到99才会进位,此方法就会出现偏差。
本文使用RANGE函数,叠加DATEDIF函数,优化返回日期值的方案。
2. 示例
本文以纵向扩展作为示例,横向扩展可在模板中切换sheet查看。
2.1 设计参数面板
1)新建一张普通报表。
2)添加日期控件「date_日期_起」、「date_日期_止」和查询控件。
2.2 设计报表
1)报表页面设计如下图所示:
2)A2单元格输入公式:RANGE(0,DATEDIF(date_日期_起,IF(LEN(date_日期_止) > 0,date_日期_止,date_日期_起),"D"))
通过DATEDIF函数计算起止日期间隔天数,并且从0至间隔天数通过RANGE函数补全天数间隔。
其中止日期增加的判断是因为允许只查询起日期单个日期,如果止日期为空则DATEDIF中的起止日期相同,天数间隔也将为0。
3)B2单元格输入公式:DATEDELTA($date_日期_起,A2)
通过起日期加上间隔天数计算出日期
2.3 效果预览
预期效果如下图所示。
3. 模板下载
点击下载模板:日期扩展.cpt