Excel的严肃用户会对这个话题很感兴趣。
每天重复下面的事情,所以一两天可以,但时间长了,谁都受不了。
收集数据、复制、粘贴、清洗数据、转换数据,
然后用固定的处理逻辑,
输出同样的结果
我把这些工作称为常规工作,属于必须做,做好不出彩,做不好有责任。
作为数据民工,每天要处理非常多的数据,深有体会。相比之下,我更愿意每天处理新的需求,分析异常业务情况的数据分析工作,显然这样的价值更高。
可如果大部分的时间已被常规工作占据,哪还有时间来做更有价值的事情?
把这些工作推给别同事? —— 凭什么!
拼手速、学快捷键节省时间? —— 一切不能释放你双手的办法都不是好办法。
自动化是唯一的出路!把原先需要几十分钟,几个小时甚至几天的工作内容自动化。腾出了时间,才有机会搞更有价值的东西。
一说到自动化,很多人就想到Excel宏、VBA什么的,这可是编程呀,必须VBA吗?
误会啊误会,如果是这样,我今天就不写这些文字了。
从我自己在企业的数据工作经历来看,70%的自动化都不需要VBA,VBA我只用于处理一些极个别复杂的需求。大部分常规性的报表我们都交给更专业的报表工具去开发,尤其是固定式报表,这个自动化比例能达到90%,上手难度却只是VBA的一半。
举个例子,有一份每天早上需要发布的销量报表,老板的要求是:
1)从总体,区域,产品,城市,分公司视角
2)展示当天、当月、当年的销售情况
3)还要给出利润及利润率
4)除此以外,还要展示出营业利润额的趋势。
正常不出意外的情况下,这份报表每天要花2~3个小时汇总制作。用报表工具做自动化模板后,一键刷新,整个过程不超过5分钟,只需要翘脚等待刷新完成。
这个报表工具就是FineReport。
罗列几个能解决大家报表制作的痛点,也是它广泛为人所用的亮点:
1、 制作报表高效低重复,自动化;
2、 数据填报,数据自动更新汇总;
3、 可视化dashboard真是酷炫;
一、高效做报表,1张模板顶替数百张Excel
为什么能如此高效,关键在于他做报表的逻辑。
1、FineReport自动化模板的做表逻辑
常规我们用Excel做报表,是把数据从数据库导出来,复制粘贴到一张或多张表上,然后对这个表数据做处理,每天有数据,就每天手动复制更新。
而FineReport直接是通过连接数据库,读取数据字段来设计报表模板的,和数据库实时对接。制作模板处理的对象是数据字段(区别于Excel的单元格数据)。模板中一个单元格放一个数据字段,对数据字段进行求和、求平均等各种函数公式的运算。且当这个数据字段下的数据有新增时,设置自动刷新就能一键更新报表。
其实和excel类似,excel对一个单元格做公式处理,然后下拉。这边是直接对数据字段处理,省去了下拉的过程,展示报表时,自动扩展开来,就相当于报报表结果中的每一个数据,都变成能自动计算的公式。只要你改变数据源,它将像多米诺骨牌一样,自动进行。
以下是用FineReport做报表模板时的场景,做的时候可能是仅仅一行,但预览时却是扩展出来的密密麻麻的 “风景”,这里就要谈谈它的数据是怎么展开的,即扩展原理。
FineReport报表中单元格的扩展是有方向的,可纵向扩展,也可横向扩展,也可以不扩展。
单元格的扩展是针对某一个单元格,当报表主体中绑定了多个单元格时,单元格与单元格之间依靠父子格关系跟随扩展。子格的数据会根据父格的数据进行过滤分组显示,并且还会跟随父格的扩展方向而扩展。
2、三大类报表设计方式,基本能解决日常所有报表需求,并且一表复用。
1)普通模板设计,此者最常用。依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等。比如交叉报表、行式报表、分组报表等等。(以上↑)
2)聚合报表设计,针对不规则大报表。适用于一张模板中显示多个独立模块的报表,几个报表块汇总在一起的复杂报表。(以下↓)
3)决策报表设计,就是表单,也是dashboard,用于弥补普通报表分页预览不能展示控件的问题。同时表单可以进行自由拖拽设计,自适应页面大小显示,自由制作驾驶舱可以更好的在各种大小类型的屏幕上展示,包括移动端、大屏。
以下举例一些常见的报表格式。
交叉表
行式报表
分组报表
自由报表
3、参数实现数据查询和过滤
在很多情况下,我们需要根据条件查询数据,过滤。在FineReport中,通过设置参数绑定数据字段和过滤的控件(单选框复选框等等),参数可用JS编辑更多复杂的情况,通过界面输入查询条件来控制报表显示的内容及形式,而后导出打印。
二、数据填报自动更新汇总
做报表的另外一个难题是有关数据源的提交,审批,更新,汇总。试想你有没有经历过每天守着点等大家发邮件送Excel,挨个保存、打开、汇总数据的麻木操作。回头数据出错,还要打回重新沟通,数据采集总是最难的。
填报就是向数据库中录入数据,用于固定格式固定条件的数据收集。就好比你注册头条时提交的邮箱、收集、用户名、密码,都会按照格式存放到数据库中。
填报也需要一个模板,类似于一个可写入的操作模式,操作流程如下:
填报模板由控件组成,文本控件、数字控件、密码控件、单复选框、网页、文件等等。控件对应着数据字段。有了填报,就可以收集数据,并且允许用户实现对数据库的增删改。出于数据质量和数据安全的考虑,还可以对填报进入的数据做校验操作。
三、可视化dashboard及分析
酷炫的dashboard都需要通过FineReport的表单(决策报表)来设计展现。通过拖拽报表块、图表块和各类控件初步设计界面。
不同于普通报表,普通报表是一个整体,无法实现局部刷新。表单是由各个组件组成,可以实现组件内刷新,即局部刷新。像动态大屏都是全局或者局部刷新的,所以需要用决策报表制作实现。
决策报表制作过程
新建表单:FineReport支持新建工作薄,即普通报表模板,还支持新建表单,两种设计模式;
拖入组件:FineReport表单支持多种不同的组件类型,包括报表块、tab块、绝对画布块、参数、图表和控件等等;
定义数据集:定义各个组件数据来源,图表组件数据即可来源于数据集,也可来源于单元格;
设置表单样式:即设置表单的显示样式。
2、数据可视化与交互
大家看到上述的可视化会好奇,这是什么图表制作的。其实大多由FineReport自带的H5图表。此前有提到FineReport良好的开放性,可让IT同事写代码开发,所以在制作时,也可接入Echarts等第三方控件来制作图表。
最后
以上便是FineReport一部分功能,篇幅有限,很多细节无法展开。
要说效率,最大的好处就是从数据库中读出数据自动产生报表,且一类报表做成一个固定样式的模板,每次只要同步一下,自动生产周期性的报表,如日报、周报、月报、季报等。 每次按照条件查询,Excel批量导出/打印,少了人力去一个一个用Excel统计汇总。
而且操作上,大多数功能FineReport都封装成模块了,包括写SQL取数,汇总筛选过滤等,基本上都有对应的功能键。像著名的资产负债表,如果按照以往写代码或者写复杂的SQL语句,就有点摧残生命了,而且那天书般的SQL语句要是出点错谁来查,如果数据来自多个源,那就彻底无法解脱了。
最后,对于新手,刚开始尝试这么做时,会遇到非常多的阻力。原因有两个:
- 做表的思维方式完全不一样,需要适应
- 上手finereport自动化模板需要学习新的技能
你需要不断的尝试和练习。但是,当你拥有这种思维方式,掌握相应的技能后,你将深深体会到它的威力,不过切记低调、低调。
还等什么呢?赶紧解放自己,get这个技能吧!