专题总结 >> 函数 >> 常见函数列表 >> 半年月报日期处理

楼主
我是社区第56387位番薯,欢迎点我头像关注我哦~
半年月报日期处理
1.        问题描述
很多时候为了全面反映情况,及时了解过去发展的状况及问题,一些分析部门会以月报的形式进行统计分析。日常数据库记录的信息比较多,可以统计出每月的信息,制作日报时,可以直接用sql处理好的关于月份的罗列。但有时,如果当月没有数据,我们希望在报表中也能有所展示,就可以通过对模板中的参数进行处理,从而得到选定时间段内的月份信息。
2.        案例讲解
2.1日期参数设置:
以半年期的月报为例,设置查询的开始时间start和结束时间end,均为日期参数,格式yyyy-MM。预览时,如果希望直接就展示出过去半年的情况,可以设置初始值为:
=IF(MONTH(TODAY())==1,DATE(YEAR(TODAY())-1,6,1),DATE(YEAR(TODAY()),MONTH(TODAY())-6,1))
公式中判断了其是否跨越一年。如现在是2015年9月,则展示日期为2015年3月至9月。
2.2表格部分罗列出选定时间区间的月份
如描述里所说,如果数据库里本身没有某个月的信息,该月份就不会被罗列。本文绕过sql,提供一种基于页面上已经选好的参数设置。
(1)随便选择一个单元格,本案例中以f1为例,写入值:
=RANGE(todate($start+'-01'),todate($end+'-01'),1) 罗列出选定时间段内的所有日期;
(2)然后再选一个单元格,比如g1,写入值:
=concatenate(year(f1),right(concatenate('0',month(f1)),2)) 拼接出罗列值的年份与月份,其中为了保持格式一致,我们选择以“201509”的方式显示,即1-9月显示时前面多个0;
(3)在需要展示月份的地方B3,写入=UNIQUEARRAY(g1),使用UNIQUEARRAY的目的是去除重复项。
模板设置截图如下:


3.        设置不需要展示的行为隐藏
预览如下:

分享扩散:
参与人数 +1 F币 +300 理由
传说哥 + 300 赞一个!

查看全部评分

沙发
发表于 2015-9-7 11:09:34
板凳
发表于 2015-9-8 10:50:29
如图
地板
发表于 2015-9-10 16:55:22
楼主要不要来完善下呢
5楼
发表于 2015-9-11 09:51:57
来来来,直接上模板吧,公式应该不用多解释了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表