美文网首页
如何实现一个支持分级数据统计的增强型透视图

如何实现一个支持分级数据统计的增强型透视图

作者: 明道云 | 来源:发表于2022-03-28 16:43 被阅读0次

文/明道云销售部顾问 文静

编辑/麦壁瑜

一个常见的企业需求

在企业的日常管理中,我们经常遇到需要对工作任务或者项目进行成本核算的任务,比如:统计员工在不同任务上的工时投入,并且按客户、产品、部门等多个维度进行分析。

让我们让问题更加复杂一点

如果只是简单按某个维度进行汇总,那么在明道云里设计好统计明细表,并配合相应的统计图表(饼状图、柱状体、透视图)就可以轻松实现。而我们今天要分享的是一个相对复杂的分层统计需求:按照数据的层级结构分层进行数据统计。

例如:在将工作任务逐级分解执行后,需要再根据员工的日报逐级进行工时汇总,一项工作任务可以关联到任何一级任务。下图这个任务工时统计,就将从总任务到二级子任务的各级任务都逐级进行数据汇总。

然而目前,这样分层汇总的报表统计在明道云还无法直接支持。难道只能找产品经理提需求吗?当然不是,明道云自身的自定义能力给我们提供了无限的发挥空间。下面我们就来利用明道现有的基础功能,改装出一个具备分层汇总能力的增强型透视图。

将大问题拆解成小问题,逐一解决

首先明确,我们最终需要的是一个统计数据表,并且按不同的层级进行汇总,因此在所有的报表类型中,“透视图”是最合适的。

透视图可以添加多个行统计维度,报表会把内容相同的行维度自动进行合并展示。如果按照数据的范围大小进行维度排序,就可以实现逐层展开的效果。如果还不太熟悉透视图,可以先参考一个包含行政区划的简单例子:工作表记录中每个地址都包含“省—市—(区)县”3个字段,如果严格按照这个顺序来设置,即可按照地区范围的大小逐级展示。

按照省—市—县顺序展示

当然,不按照特定的顺序来排序也不会影响报表呈现,只是无法更好的展示数据本身的层级或者分组关系。在本文的需求中,我们自然会选择按照工作任务本身的层级关系来统计。

按照市—区(县)—省顺序展示

确定了最终的报表呈现形式,下一步就是要为报表提供数据源。通过刚才对透视表的特点分析,我们看到目前透视表本身不具备的功能:

展现形式上,要想实现具备相同的上层数据自动合并展示,必须要让上层数据有完全相同的内容才行(任务名称+汇总结果)

透视表虽然可以按维度合并数据,但本身无法分层进行数据统计,因此需要我们在数据源表中先计算好各层的汇总数据

明确了这两个目标,下一步就要基于当前基本的功能来改造数据结构,以满足要求。

解决问题

1.建立分层统计的数据结构(月度/分类汇总表)

各层有唯一的一条记录,用于累计本层工作的汇总数据。记录通过日报提交的事件自动创建即可。

2.建立透视图的数据源表,用于分层显示的各级汇总字段

注意:这里还是需要根据业务需求确定一个最大层级,因为透视表的行维度在配置时就固定下来。

字段格式设置为“任务名称-本层工时汇总”,里面需要按层级分别关联上一步的分类统计数据。也就是说,每条数据除了要保存自身的工时以外,也要保存所属所有上层任务的汇总工时,并通过“文本组合”统一格式。

3.逐层统计

一旦有新的数据提交,工作流自动根据提交所在的层级向上追溯,并将本层新增的工时累加到上层各级的汇总字段。由于这些字段已经和统计源数据建立关联,所以可以让所有相关数据都同步更新。

当有日报增加时,通过工作流直接创建一个步骤(2)对应的工时数据汇总记录,此时该数据中只有当前日报本身的工时数,还没有建立和(1)的汇总数据关联。

然后按照层级关系逐级累加,并且将各级汇总数据关联到当前记录。在逐层累加的设计中我们使用了A、B子流程循环调用的模式,子流程中封装了累加当前层级汇总数据和关联数据源表记录的逻辑。一个子流程处理完成后,只需要判断当前计算的层级是否还有上级,如有就调用另一个相同结构的子流程B继续进行累加,循环往复。

完成这些配置和数据录入后,各个日报的数据里就会分别显示上面各级的汇总信息,并且实现一个增强版本的透视图效果。

最终自动累加出来的数据源表 自动生成的增强型透视图

结束语

通过一个小案例,我们就实现了一个产品本身没有的功能,这就是明道云的魅力所在——只要掌握所有基本组件的特性,在充分分析业务需求的基础上,我们可以一定程度上突破产品本身的边界,总结一句话:

“使用明道云产品最大的困难可能不是产品目前还没有什么功能,而是你缺乏想象力!”

相关文章

  • 如何实现一个支持分级数据统计的增强型透视图

    文/明道云销售部顾问 文静 编辑/麦壁瑜 一个常见的企业需求 在企业的日常管理中,我们经常遇到需要对工作任务或者项...

  • swizzleMethod以及友盟统计

    如何统计一个应用中页面的数据统计,通过swizzleMethod以及友盟统计设计一个分类可简单的实现:我们通过sw...

  • Power Pivot 系列 (2) - 动态数据透视表和透视图

    本篇接着介绍 Power Pivot,使用上一篇的数据,编制一个透视表 + 透视图,实现数据动态展示,动态效果来自...

  • 数据透视表-展示-2017.11.28、30

    目录:会动过的数据透视图图表那些事切片器与透视图 一 会动的数据透视图 普通图表:数据区域以及图表区域是“固定的”...

  • Iterable、Iterator、foreach

    1. Iterable简介 实现此接口的对象支持迭代,允许该对象成为增强型for语句(有时称为“for-each”...

  • 图表的运用

    今天学习图表的运用。在学函数、数据透视图之后,开启了进阶课程——用图表来展示数据。 如何制作一个简单有效的表...

  • 使用Excel制作部分表格禁止编辑的信息统计表

    背景 需要做一个物料信息统计表,Item数量尽可能少,结构清晰,有数据透视图,部分表格禁止编辑。 步骤 首先需要明...

  • 每周工作总结

    这周完成的 1 对分级阅读相关数据接口进行编码实现,完善数据接口文档,配合web前端对接并整合分级阅读整个功能流程...

  • python 单词出现频率统计功能

    本文描述如何用python 实现统计一个文本中单词重复出现次数,并且对数据进行排序,代码如下:

  • T1.2 Excel 透视表

    1. 如何在菜单栏添加数据透视表和数据透视图向导按钮: 【打开数据透视表的Shorcuts:按ALT+D,松开再按...

网友评论

      本文标题:如何实现一个支持分级数据统计的增强型透视图

      本文链接:https://www.haomeiwen.com/subject/mavpjrtx.html