日常工作中,涉及到数据的表格、计算、图表和分析,大家首选的一定是Excel。
但我也看到不少知友困惑于Excel的深入学习难度,鸡肋的大数据处理效率。
比如某同事为处理七八个维度,近万条数据奔溃不已;又有人几十万行的数据把电脑频频跑崩;再者,随着多任务线之间的交叉,汇总任务呈几何级数增加……
倒不是说Excel完成不了这类任务,如果是日常的表格记录、数据计算、Excel确实无法替代。但如果说做企业管理的业务报表、庞大而又复杂的数据分析、财务分析、预算编报,Excel就很不擅长了,因为其数据不统一,也没有独立的计算引擎,数据在各个Excel文件中独立存在,数据合并非常费事。
比如,最近我媳妇入职一家新公司,任某品牌的卖场数据专员。虽然之前也是这个行业的,可并不擅长数据报表的制作。
负责交接的同事是个毕业后就入职这家公司3年多的老员工,一直在做报表这块的工作,交接的时候为了更准确,我让媳妇使用录屏软件,将他每天要做的事情都录下来。
结果发现,这家伙从早上开始,就开始问信息部要数据,然后用excel各种复制、粘贴、求和、求百分比、vlookup、再复制、粘贴、求和、求百分比、vlookup、删除、调整……,几个小时后,第一张报表诞生了……
看了录像后的我,整个人都是崩溃的,这也太逆天了。好吧,这小伙子确实厉害,操作速度绝对是一流的,LOL里至少也是钻石V。
但我可舍不得媳妇每天这样,而且对于计算机专业的我来说,只要有数据库,这些重复性的工作都是分分钟代码/工具能解决的。
考虑到会有不少需求变化,让媳妇改代码是完全不可行的,于是我就找现成的报表工具。比较了SPSS、SAS、cognos、水晶、foxtable、finereport之后,确定了报表软件finereport。从mysql建表、数据导入、制作日报、周报、月报,各种对比报表开始逐个攻破,终于在手速不低于黄金段位的我进过一个星期的努力后,全部完工了,经过和小伙子做出来的手工表进行校对,确认没有问题后,安装部署到了媳妇的办公电脑上。
几天后,小伙子离职了,从此,媳妇上班只需要早上向个卖场的负责人收集数据,然后花几分钟导入数据库,然后点点鼠标,生成各种报表,然后……先存起来,喝水、吃零食、水果,休息,上网。
所以,从效率上来讲,专业的报表工具是可以替代很多重复性的excel处理工作的,比方说FineReport,信息部门部署安装后,可以连接各业务系统数据,将常规的各业务报表,还有周报月报这些,开发成可自动抽取数据并展示的模板,做好一次,每次只要查询即可。
因为这个工具大多为信息部开发报表所用,可能很多人都不太了解!我尽量以简洁易懂的语言,从技术的角度讲讲这个报表工具,操作上为何能省时省人力,并且有可以替代数据透视表的惊艳可视化。
一、用FineReport做一张模板,可以替代N张手工重复劳作的Excel !
为什么这么说?先来了解FineReport的制表原理
1、FineReport的制表原理
做报表首先得有数据,数据哪里来?一个是直接连接业务系统或者数据库的数据,还有可以导入excel文件数据,连好数据后,开始制作模板,类似于做excel表格一样,设计展现的样式,计算的公式,最后在web端展示。
但是和excel不用,excel处理的是一个个数据,finereport制作模板时处理的对象是数据字段,模板中一个单元格放一个数据字段,web端展示时字段扩展。FineReport报表中单元格的扩展是有方向的,可纵向扩展,也可横向扩展,也可以不扩展。
单元格的扩展是针对某一个单元格,当报表主体中绑定了多个单元格时,单元格与单元格之间依靠父子格关系跟随扩展。子格的数据会根据父格的数据进行过滤分组显示,并且还会跟随父格的扩展方向而扩展。
2、三大类报表设计方式,解决日常所有报表需求,并且一表复用。
1)普通模板设计,此者最常用。依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等。比如交叉报表、行式报表、分组报表等等。
2)聚合报表设计,针对不规则大报表。适用于一张模板中显示多个独立模块的报表,几个报表块汇总在一起的复杂报表。
3)决策报表设计,就是表单,也是dashboard,也就是大家常见的各种图表拼接在一起的可视化数据报表。
通过拖拽图表来制作,制作好的dashboard可以自己适配屏幕的大小,多以也可以做成手机端的报表,大屏可视化,下面有细讲。
以下举例一些常见的报表格式:
交叉表
行式报表
分组报表
自由报表
3、参数实现数据查询和过滤
查询报表是怎么做呢?在FineReport中,通过设置参数绑定数据字段和过滤的控件(单选框、复选框等等),通过界面输入查询条件来控制报表显示的内容及形式,而后导出打印。
很多人工作上会做周报月报季报等,有些全国性的公司有分公司、门店、办事处。经常性的要做这些重复性很大的报表。那用FineReport就可以集中将每一条数据明细上传到数据库中(填报功能,下面会讲)。在做报表时,做将一些常用的维度“地区”、“时间”、“城市”等等作为一个查询的参数控件,类似Excel中的筛选,导出。基本上一个周报模板,就解决了一些人一年52张手工excel报表的工作量。
4、填报
数据采集是一个很重要的步骤。填报就是向数据库中录入数据,用来收集数据的,就好比你注册网站时提交的邮箱、收集、用户名、密码,都会按照格式存放到数据库中。
填报也需要模板,操作流程如下:
填报模板由控件组成,文本控件、数字控件、密码控件、单复选框、网页、文件等等。控件对应着数据字段。有了填报,就可以收集数据,并且允许用户实现对数据库的增删改。出于数据质量和数据安全的考虑,还可以对填报进入的数据做校验操作。
填报最大的用处是替代了excel收集数据,做好了模板,奖模板链接发送给相关人,填完数据审核过后即可入库,省得excel传来传去,而且是在web端填写,非常方便。
二、不只是报表,还有数据可视化
酷炫的dashboard都需要通过FineReport的表单(决策报表)来设计展现。通过拖拽报表块、图表块和各类控件初步设计界面。
不同于普通报表,普通报表是一个整体,无法实现局部刷新。表单是由各个组件组成,可以实现组件内刷新,即局部刷新。像动态大屏都是全局或者局部刷新的,所以需要用决策报表制作实现。
1、决策报表制作过程
新建表单:FineReport支持新建工作薄,即普通报表模板,还支持新建表单,两种设计模式;
拖入组件:FineReport表单支持多种不同的组件类型,包括报表块、tab块、绝对画布块、参数、图表和控件等等;
定义数据集:定义各个组件数据来源,图表组件数据即可来源于数据集,也可来源于单元格;
设置表单样式:即设置表单的显示样式。
2、数据可视化与交互
当下,数据分析盛行的年代,格子报表枯燥无味,可视化报表才能博得领导赞赏。之前很多网友问如何做可视化,其实,用FineReport自带的H5图表,就可以做出很炫的可视化dashboard。此前提到FineReport良好的开放性,可让技术同事写代码开发,所以在制作时,也可接入Echarts等第三方控件来制作图表。
3、实用而强大的数据地图
finereport有很强大的地图功能:基本地图、GIS地图、热力地图、大数据流向地图等,基本一键生成。
GIS地图基于GIS地图层进行数据展示,支持自定义GIS主题风格,能够与数据表钻取联动。比如省级钻取到市级、县级、街道。
三、总结
要说效率,最大的好处就是从数据库中读出数据自动产生报表,且一类报表做成一个固定样式的模板,每次只要同步一下,自动生产周期性的报表,如日报、周报、月报、季报等。 每次按照条件查询,Excel批量导出/打印,少了人力去一个一个用Excel统计汇总。
而且操作上,大多数功能FineReport都封装成模块了,包括写SQL取数,汇总筛选过滤等,基本上都有对应的功能键。像著名的资产负债表,如果按照以往写代码或者写复杂的SQL语句,就有点摧残生命了,而且那天书般的SQL语句要是出点错谁来查,如果数据来自多个源,那就彻底无法解脱了。
其次,在数据处理速度上,由于性能一部分依靠数据库,一部分依靠FineReport的行式报表引擎,相比于Excel的单机效率,几十万行的数据秒出。再者,企业数据库有各种自带或第三方的集群方案,通过堆机器就可以近似于无限的加大数据储存能力。