开发报表是数据分析师必备技能之一,目前市场上,绝大部分的数据分析师的工作时间都是用来做报表。报表是维持公司正常生产运营重要的一部分,企业的业务发展状况、财务状况等等都需要通过报表来监测。

然而很多企业的数据分析师或者报表工程师在报表开发的过程中总遇到这样的问题:每天接需求,接需求,费尽心血做了一堆的报表,但是感觉没什么用。有的报表改了又改,业务总是不满意,最后好不容易改好了,功劳还都是业务部门的,自己还要被业务套上能力不行的帽子。

为什么做出来的报表总被说没用?怎么样才能做出令人满意的报表呢?结合我将近10年的从业经验,给大家一些建议,希望能够帮助到大家。

报表开发要以人为本

做报表其实就相当于做产品,我们目的是要让用户(业务、领导)满意,愿意看,愿意用,所以报表好不好不是开发人员觉得好就好,而是要从看报表的人出发,用户觉得好才好。因此我们在开发报表的过程中要以人为本,搞清楚报表的目标用户(给谁看),用户需求(他想看什么)。

对于基层业务人员,他们的报表需求大多都是数据查询,比如查看订单数据,任务完成进度等等,注重报表的实用性,因此,这类的报表不需要有太多的分析思想,要操作简单,针对性强。

对于中层业务管理人员,他们既要向领导汇报,又要向下安排具体工作,因此高层领导知道的,中层领导也必须掌握,并且对问题还要有深入的分析,所以,这类的报表除了数据指标的展现外还要带有简单的数据分析和不同维度的查询

对于高层领导,他们没有太多的时间去深入研究报表的细节,更多的需求是一目了然看到核心数据,因此这类的报表要简洁明了,直接体现结果,并且提供联动钻取等简单的操作发现数据背后的问题,然后让下属去分析汇报。

不同的报表查看人群决定了报表设计风格的不同,有些公司的业务部门会有专门的人负责对接报表需求,需求由他统一对接,但是他本人并不一定是报表的直接使用者,所以我们在沟通需求的过程中,要尽量获取报表直接使用人的具体信息,甚至想办法获取第一手的报表使用者的直接需求。

挖掘业务需求

业务经常吐槽开发做出来的报表没用,为什么没用?需求是你提的,你要啥我给啥,按照你的要求做出来的你还说没用,不讲道理啊。于是很多报表开发者把报表做的不好的原因归结于业务不会提需求。

这确实是个问题,业务人员提报表需求有两种情况,一种是出于眼前业务的需要,或者是领导的要求,为了完成任务,需求非常片面,而且他提的报表需求也不一定能解决实际面临的问题,还有一种情况是,业务有想要的东西,但是不知道该怎么提需求,提出来的需求可能和他想要的不一致,这就导致需求改了又改,都达不到他们心中所想。

因此,这就需要我们报表开发者发挥主观能动性去挖掘业务需求,毕竟做报表我们才是专业的,利用我们的专业知识引导业务,帮助业务完善需求,而不是简单的确认需求。

举个例子,省公司业务人员提得报表只关注地市维度,但实际县市级纬度也需要,但业务在需求中没有提,如果你只简单按照需求实现了这张表,地市人员会发现没有县市维度,他们又会提一个县市维度的报表,本来一张表就能解决的事情就衍生成了几十张报表,苦的还是开发人员。

化繁为简,做好报表管理

企业的数据是日积月累的,报表需求也是绵延不绝,因此企业积累的报表也越来越多,但是其实大部分报表的最终宿命都是躺在系统里没人看,真正有用的只有一小部分。

为什么我们总是有无穷尽的报表要做?本质上就是因为报表本身其实就是展现纬度和指标,企业的不同层级的人员对于指标展现的需求不同,于是就通过纬度和指标组合生成更加复杂的指标,进而导致了各式各样的报表展现需求。但实际上,我们仔细研究每个部门提出的需求,发现有大量的内容都是重复的,以零售业举例子,看起来满天飞的报表需求,其实都是围绕着这几个主题转:销售、库存、采购、物流、会员、商品,只不过是通过不同的纬度来看其中的指标。

所以,面对无穷尽的报表需求,我们要对报表做好分类。上面提供了三种分类的纬度,一种是从目标用户纬度分类,一种是从销售、财务等业务主题纬度分类,还有一种是按照报表的功能纬度分类。个人建议按照报表功能纬度进行划分,用另外两个维度进行描述。比如:

  • 数据查询类报表
  • 涉及业务模块:销售、库存
  • 报表名:实时指标查询;用户群:店长(中层)、品类经理(中层)

将报表分类清晰之后,我们就会发现在同一个报表类型、业务模块下面,可能会有多个报表,这些报表的分析目的可能是一致的,实际上就可以进行压缩合并。比如在库存业务模块下面的查询报表有部门库存分析表,库存结构分析表(还分部门、品牌、单品三个纬度)缺货断货统计表等等

上面这几个表的目的是了解商品库存情况,剩余库存结构,从而管理好库存或执行商品促销策略。这三张表完全就可以放在一张报表中,更好的办法还可以采用图表结合的形式来展示。

这样一压缩,很多需求就不攻而破了,即方便了业务人员的查看,也方便进行报表管理,减轻制表压力,一举两得。

利用高效的开发工具

做好报表除了报表内容对业务胃口之外,需求完成效率也是评价报表开发好坏的因素之一。因此,选用高效率的报表开发工具,对报表开发的过程也十分重要。

报表开发一般有以下几种方式:

一是用Excel内置的图表做一些常规的统计图,一些高级的动态图表,参数联动筛选等可以通过写VBA来实现,这种方式是很多企业最初的做法,但是时间久了弊端就出现了,数据量越来越大,Excel难以支撑,报表打开卡顿;数据收集麻烦,而且不能打通各个系统中的数据

还有就是用通过R、Python一类的数据分析语言,调用图表功能包,呈现可视化的数据,数据分析常用。或者借助Echarts、HighCharts、D3.js等开源的可视化插件,嵌入代码,开发成插件包,可视化工程师和前端开发常用。

再有就是使用现成的开源报表工具如JasperReport 、OpenReport,但会遇到一些难题,如:打印报表;复杂的数据计算;复杂格式的报表展示;页面、打印、导出word、pdf、excel格式一致性等等,而且后期的报表维护很苦难,需求一改就写大量的代码

还有一个简单的办法就是用商业报表工具,比如水晶报表、FineReport,个人比较推荐FineReport ,报表设计过程方便,支持多种数据源链接,三种报表模式覆盖明细/分组/交叉/分页/分栏树报表、可视化dashboard、大屏、复杂中国式大聚合报表等,基本能满足绝大部分的报表需求

懂数据,懂业务

在之前写数据分析的文章里,我经常提到做数据分析必须要懂业务,做报表也一样,很多报表开发者工作2年之后就会觉得自己能力难以成长了,能掌握的报表知识和系统知识基本都掌握了,不知道还能从哪些方面再进步,这时候业务知识的掌握往往就成为了报表人能力的分水岭。借用之前看过的一篇文章中的一个例子:

比如移动通信中有离网这个指标,很多业务人员认为离网就是简单的一个指标,但在系统中,离网包含主动销户、账户欠费销户等更多的含义,离网的业务流程系统实现其实非常复杂,每类离网实际表达了不同的业务含义。

业务流程的制定往往是几代业务人员积淀下来的成果,极少数业务人员能理解的很透彻,但系统中则完整的记录了下来,作为报表开发者,你应该成为这个知识的传承者,才能够作出一张超越业务人员的报表。

10年报表开发经验总结:掌握这5点,没有做不好的报表相关推荐

  1. c#水晶报表连接mysql_C# 用vs2008连接SQL数据库做动态水晶报表

    博主是个还在上大学的新手,如果有什么说错的地方请务必帮我指出来,谢谢! 想要完成一个能够动态改变其中数据的水晶报表,可以通过创建一个 数据的中转站来存储和输出数据的方式. 借由这个中转站,我们可以通过 ...

  2. FPGA设计经验谈 —— 10年FPGA开发经验的工程师肺腑之言

    FPGA设计经验谈 -- 10年FPGA开发经验的工程师肺腑之言 2014年08月08日 14:08    看门狗 关键词: FPGA 作者:friends 从大学时代第一次接触FPGA至今已有10多 ...

  3. 五年开发经验,做过1000+报表,我如何做出领导满意的报表管理

    自己以前从事过五年的报表开发者与报表制作,累计也做了1000+的报表,虽然现在不做了,但对于报表很有感情,今天就跟大家聊聊报表的一些关键问题及解决方法吧. 经常有人问我,做了很多年的工作表,但还是没理 ...

  4. 程序员,10年的开发经验,在35岁的生理年龄面前,一文不值

    有一位阿里员工在脉脉上,晒出了自己被辞退的经历: 35岁的他,欢天喜地过完年后,迎来的不是开门红包,而是公司的辞退建议.而被辞退的理由很简单:年纪太大. 都说工作经验决定收入水平,可是在这个程序员身上 ...

  5. 从1天到10分钟的超越,华为云DRS在背后做了这些

    摘要:华为云DRS助力一汽-大众BI平台实时查看报表,提升数字化决策能力. 本文分享自华为云社区<分钟级查看报表,华为云&一汽-大众,让商机时刻被洞见>,作者:GaussDB 数据 ...

  6. C#毕业设计——基于C#+asp.net+sqlserver的报表管理系统设计与实现(毕业论文+程序源码)——报表管理系统

    基于C#+asp.net+sqlserver的报表管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的报表管理系统设计与实现,文章末尾附有本毕 ...

  7. 报表开发工具FastReport .Net 如何在移动端生成Web报表应用?

    FastReport .Net是一款全功能的Windows Forms.ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastRe ...

  8. 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合

    dada-report报表整合UReport报表设计器工具 结合日常工作和学习实践,针对传统报表子站面临的问题,尝试借助UReport报表设计器解决 1.可在现有工程基础上引入Ureport2报表设计 ...

  9. 水晶报表中对某一栏位值进行处理_合并报表——非同一控制下的企业合并amp;同一控制下的企业合并...

    [写在前面] 长期股权投资企业的一种投资行为,投资方通过该行为享有被投资单位的股利分配.净利润等投资收益,处理的是母公司(投资方)的个别财务报表. 只有控股合并才需要编制合并报表,意味着后续计量采用的 ...

最新文章

  1. 用 PHP 读取 XML
  2. c语言宏定义_掌握C语言,中文编程不是梦
  3. 组队瓜分百万奖金池,资深算法工程师带你挑战飞桨论文复现赛!
  4. Linux下eclipse中shell脚本编程环境的搭建
  5. Linux下update和upgrade的区别
  6. linux安装neo4j
  7. [转]网友monkeylarry研究生期间我们应该做什么
  8. java double 初始化_java语言程序员之正确的初始化
  9. 《跟阿铭学Linux》第12章 shell脚本中的变量:课后习题与答案
  10. Windows 电源计划设置关闭显示器不起作用的解决方法
  11. RxJava Observer与Subscriber的关系
  12. 中文计算机期刊影响因子排名,最新计算机类中文核心期刊影响因子排名
  13. MATLAB 基础与通信系统仿真
  14. linux查看系统所有变量,Linux系统各指标命令
  15. 信息技术发展史及其趋势
  16. 蓝桥杯单片机12届第二场
  17. Netty(一)基础socketchannel,Buffer,selector黏包 半包解决 实战
  18. 【企业架构设计实战】5 大数据架构设计
  19. [论文阅读:姿态识别Transformer] TFPose: Direct Human Pose Estimation with Transformers
  20. java web.xml taglib_java – 在web.xml中声明JSP taglib指令

热门文章

  1. 互联网+智慧景区智慧旅游服务与运营项目建设解决方案
  2. python 万历年表
  3. 风险管理及风险价值VaR分析
  4. 基于MATLAB交通标志识别系统
  5. python manage.py migrate和 migrate --fake和migrate --fake-initial的区别
  6. shell编程 实例----彩色进度条
  7. mysql怎么生成模型,PowerDesigner连接MySQL逆向生成物理模型
  8. Android app开发 如何添加启动界面
  9. R语言完成1:N倾向性评分匹配PSM
  10. Linux安装Maven一条龙服务