大部分公司目前还是在用Excel在进行数据分析:收集数据、统计分析、做报表,毕竟Excel还占据着数据分析工具的半壁江山,而且Excel还“价格便宜”,大部分人都会用。
但这些都谈不上是专业的数据分析,专业分析师一般用Python或R语言。
但不可否认的是,Excel的功能的确很强大,它可以实现简单的数据清洗和数据挖掘,以致于当初很多人只学了Excel里的数据透视表,就敢自称是数据分析师了。
当然,对于简单的逻辑分析和小规模数据集,Excel是完全可以满足数据清洗的要求的,同时Excel也可以用分类、聚类、关联和预测这几种算法来实现简单的数据挖掘。
但是,Excel之所以逐渐落后于数据分析市场,就因为它也存在着许许多多的问题,最主要的问题包括处理不了大数据集、可视化程度低、难以解决数据孤岛、操作不灵活有难度、重复人力工作、数据无法实时更新、终端不拓展等等,所以比起专业的数据分析工具还是逊色不少。
所在在现在的企业数据分析过程中,一般流程是这样的:
IT部门用SQL取数,用专业的报表工具比如finereport做业务报表,也有用BI做分析报表的;
然后数据分析方面,BI因为上手简单,可视化直观,可搭建分析平台,可整合数据,常被用作企业级的数据分析工具,业务人员可以自主分析,分析师也经常用BI来取数,做固定的可视化分析;
但如果是专业的分析,公司又有专业的数据分析师,涉及建模数据挖掘等,就会用Python还有R。
这款效率远超Excel的表格工具,没用过就可惜了!
日常工作中,涉及到表格、图表、分析、数据处理,大家首选的一定是Excel。但小编也看到不少知友困惑于Excel的深入学习难度,鸡肋的大数据处理效率。
比如某知友为处理七八个维度,近万条数据奔溃不已;又有人几十万行的数据把电脑频频跑崩;再者,随着多任务线之间的交叉,汇总任务呈几何级数增加……
倒不是说Excel完成不了这类任务, Excel作为个人办公软件绝无仅有,但作商业用,效率还稍有不足。最主要的原因还是处理速度上,excel更多时候充当的是轻量数据库和计算功能。
懂IT的朋友可能会说,交给数据库啊,写两条SQL就解决了。再不行,找程序员写代码,什么图形化的界面,分析,图表,数据录入,修改删除界面,都可以交由程序开发,性能杠杠的。那如果有一款工具能解决掉数据库之后的数据增改删,展现,交互分析,移动大屏展示,并做到办公协同,那就是小编今天想来讲讲的FineReport了。
此前,小编正式介绍过FineReport, FineReport的本质是一个通用的报表制作和数据可视化工具,是一个开放的商业报表工具。好比Excel,小到可以存储统计数据、制作各式各样的图表、dashboard,大到制作财务报表、开发进销存系统。
今天我想从技术的角度讲讲FineReport,操作上为何能省时省人力,如何在实现系统化数据分析的同时又能有惊艳的可视化。
一、如何花1小时完成一张复杂报表,解放10+人力?
1、 关于FineReport的制表原理
FineReport是通过连接数据库,读取数据字段来设计报表模板的,所以在制作模板前先要知道数据库的类型、地址、访问数据库的用户名密码,两者建立一个数据连接后才可开始设计模板。然后依据所需功能(表格展示?填报?dashboard分析?)和表样来操作模板,最后在web端展示。
制作模板时处理的对象是数据字段(区别于Excel的单元格数据),模板中一个单元格放一个数据字段,web端展示时字段扩展。FineReport报表中单元格的扩展是有方向的,可纵向扩展,也可横向扩展,也可以不扩展。
单元格的扩展是针对某一个单元格,当报表主体中绑定了多个单元格时,单元格与单元格之间依靠父子格关系跟随扩展。子格的数据会根据父格的数据进行过滤分组显示,并且还会跟随父格的扩展方向而扩展。
2、三大类报表设计方式,解决日常所有报表需求,并且一表复用。
1)普通模板设计,此者最常用。依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等。比如交叉报表、行式报表、分组报表等等。
2)聚合报表设计,针对不规则大报表。适用于一张模板中显示多个独立模块的报表,几个报表块汇总在一起的复杂报表。
3)决策报表设计,就是表单,也是dashboard,用于弥补普通报表分页预览不能展示控件的问题。同时表单可以进行自由拖拽设计,自适应页面大小显示,自由制作驾驶舱可以更好的在各种大小类型的屏幕上展示,包括移动端、大屏。
以下举例一些常见的报表格式。
交叉表
行式报表
分组报表
自由报表
3、参数实现数据查询和过滤
在很多情况下,我们需要根据条件查询数据,过滤。在FineReport中,通过设置参数绑定数据字段和过滤的控件(单选框复选框等等),参数可用JS编辑更多复杂的情况,通过界面输入查询条件来控制报表显示的内容及形式,而后导出打印。
4、填报
填报就是向数据库中录入数据,用于固定格式固定条件的数据收集。就好比你注册知乎时提交的邮箱、收集、用户名、密码,都会按照格式存放到数据库中。
填报也需要一个模板,操作流程如下:
填报模板由控件组成,文本控件、数字控件、密码控件、单复选框、网页、文件等等。控件对应着数据字段。有了填报,就可以收集数据,并且允许用户实现对数据库的增删改。出于数据质量和数据安全的考虑,还可以对填报进入的数据做校验操作。
5、打印 &导入导出
FineReport的打印方式分为客户端打印和服务器端打印。
服务器端打印就是使用报表应用所在的服务器,连接的打印机进行打印;
客户端打印就是使用本地连接的打印机进行打印;又分为Flash打印、PDF打印、Applet打印以及本地打印。
出于对Excel的支持,有各种方式(如下)导出成Excel文件,同时,设计器中可导入Excel,填报也可直接导入带有数据的Excel表样。
二、如何制作酷炫的Dashboard可视化
酷炫的dashboard都需要通过FineReport的表单(决策报表)来设计展现。通过拖拽报表块、图表块和各类控件初步设计界面。
不同于普通报表,普通报表是一个整体,无法实现局部刷新。表单是由各个组件组成,可以实现组件内刷新,即局部刷新。像动态大屏都是全局或者局部刷新的,所以需要用决策报表制作实现。
1、决策报表制作过程
新建表单:FineReport支持新建工作薄,即普通报表模板,还支持新建表单,两种设计模式;
拖入组件:FineReport表单支持多种不同的组件类型,包括报表块、tab块、绝对画布块、参数、图表和控件等等;
定义数据集:定义各个组件数据来源,图表组件数据即可来源于数据集,也可来源于单元格;
设置表单样式:即设置表单的显示样式。
2、数据可视化与交互
很多知友看到上述的可视化会好奇,这是什么图表制作的。其实大多由FineReport自带的H5图表。此前有提到FineReport良好的开放性,可让IT同事写代码开发,所以在制作时,也可接入Echarts等第三方控件来制作图表。
3、实用而强大的数据地图
FineReport有很强大的地图功能:基本地图、GIS地图、热力地图、大数据流向地图等。
GIS地图基于GIS地图层进行数据展示,支持自定义GIS主题风格,能够与数据表钻取联动。比如省级钻取到市级、县级、街道。
三、总结
以上便是FineReport一部分功能,篇幅有限,很多细节无法展开。
要说效率,最大的好处就是从数据库中读出数据自动产生报表,且一类报表做成一个固定样式的模板,每次只要同步一下,自动生产周期性的报表,如日报、周报、月报、季报等。 每次按照条件查询,Excel批量导出/打印,少了人力去一个一个用Excel统计汇总。
而且操作上,大多数功能FineReport都封装成模块了,包括写SQL取数,汇总筛选过滤等,基本上都有对应的功能键。像著名的资产负债表,如果按照以往写代码或者写复杂的SQL语句,就有点摧残生命了,而且那天书般的SQL语句要是出点错谁来查,如果数据来自多个源,那就彻底无法解脱了。
其次,在数据处理速度上,由于性能一部分依靠数据库,一部分依靠FineReport的行式报表引擎,相比于Excel的单机效率,几十万行的数据秒出。再者,企业数据库有各种自带或第三方的集群方案,通过堆机器就可以近似于无限的加大数据储存能力。
最后,FineReport除了解放个人,最大的贡献应该是对企业。在商业用途上,我们要考虑效率,人员的培训成本,协同性,还要考虑对企业业务的支撑、贡献,这几点Excel是比较难发挥贡献的。有知友说“Excel用得再溜,老板也不会给你涨工资,可能还革了其他同事的命”。那是因为Excel处理了数据,但没有得到有效结果去服务于业务带来效益。那如果在报表之后,基于业务基于指标去做特定主题的数据分析,站在公司角度做数据化管理,为领导的业务决策提供有效意见,这样的高度就别有不同了。