数据源为动态图表提供数据支持,可以看作动态图表的后台模块。数据以何种方式被组织——也就是数据源的结构——决定了动态图表的交互逻辑和呈现方式。
我们在日常工作中接触到的很多数据(可称之为原始数据),如手工统计报表、来自数据库的业务报表,往往是不能直接拿来做数据源的,而必须依据动态图表的展示意图和需求进行加工和组织,进而形成真正的数据源,为动态图表提供源数据支持。
数据源的结构与数据的维度有关。
通常情况下,我们看到的Excel表格都是双维的,即行和列,分别对应两个数据维度。例如,在图5.1中,行维度为区域,列维度为月份,而数值则为行、列对应的销量。
图 5.1
从二维结构表提取和引用源数据非常容易,因此二维结构的数据源应用最为普遍。
使用图5.1所示的二维表格作为数据源,可以制作如下所述两个动态图表。
1)以月份做下拉列表,显示指定月份各个区域的销售情况,如图5.2所示。
2)以区域做下拉列表,显示指定区域各个月份的销售情况,如图5.3所示。
有的读者可能会思考:为什么要做两次图表,能不能将图5.2和图5.3的交互功能叠加在一张动态图表中呢?
图 5.2
图 5.3
当然是可以的,如图5.4所示,使用了单选按钮和组合框两种控件。单选按钮控制图表的互动逻辑,组合框可提供地区或月份选项。
图 5.4
二维结构固然是最方便的,但实际工作中可能遇到三维或三维以上的、更为复杂的数据。例如图5.5所示的模拟数据表,就包含了渠道、区域和月份三个数据维度。
多维结构的数据源在源数据提取和引用上比二维数据更复杂,要使用的控件也更丰富一些,但是仍然通过函数参数上的“信号”变化来实现交互功能,可谓“万变不离其宗”。如图5.6所示即为根据图5.5所示示例的三维结构表制作而成的动态图表,它可以同时按渠道类型和区域进行数据展示。
图 5.5
图 5.6
更多维的数据表一般很少见,在这里也不做过多介绍。多维数据的数据源组织和动态图表制作在本书的“制作篇”中会有更为详尽的介绍。
从本节内容可见,动态图表的数据源结构其实很容易把握。组织数据源的关键在于对原始数据的处理,如格式转化、汇总表制作等。
在实际工作中,很多数据报表往往来自于企业的数据库,并以记事本格式保存(如txt或csv 格式)。因此,在构造数据源时,首先要将记事本格式转化为Excel文件格式。
如图5.7所示是一份从企业数据库中导出的txt数据文档,下面将其转换为Excel文件。
图 5.7
Step01 用Excel打开记事本文档。
在记事本文档所在的文件夹找到该文件图标,在图标上右击,在弹出的快捷菜单中选择“打开方式”命令,从弹出的列表中选择用Excel程序打开文件。
在Excel中检查数据,会发现所有数据都存放于表格第一列(见图5.8),故首先需对数据进行分列。
图 5.8
Step02 数据分列。
选中数据所在列(即A列),在“数据”选项卡下单击“分列”图标,如图5.9所示,弹出如图5.10所示的对话框。
图 5.9
图 5.10
单击“下一步”按钮,选择分隔符号,此处选择“逗号”,如图5.11所示。
图 5.11
单击“下一步”按钮,完成分列。分列后,数据将以逗号分隔符作为分隔依据,将原数据分开并独立成连续的数据列,如图5.12所示。
图 5.12
Step03 另存为Excel格式。将文件另存为Excel工作簿格式,生成一份新的文档。在新文档中对表格经过再加工和处理即可用于形成动态图表的数据源。
很多报表即使符合数据源的结构要求,也不一定可以直接用来做动态图表的数据源。这是因为,很多来自数据库的报表往往是记录(Case)式数据,例如业务流水。必须对这些记录数据进行汇总,生成汇总表,才可以作为数据源使用。
数据透视表是一个非常好的数据汇总工具,它能够按照字段灵活地对记录式数据进行分类汇总,并生成汇总表。有关数据透视表的详细应用,可参见本书第19章内容。
本节,我们将通过一个案例来介绍如何用数据透视表制作数据源。
如图5.13所示,是从银行系统中导出的一张积分统计报表(数据为模拟),包含如下字段。
·机构代码——银行网点的编号。
·机构名称——银行网点的名称。
·产品业务类型——本表中数据全部为“储蓄余额(本币)”类。
·客户姓名——网点的客户名称。
·上年存量余额——客户去年的平均余额。
·余额/交易额——客户本年的平均余额。
·存量积分——根据存量余额和营销规则计算的积分。
·增量积分——根据增量余额和营销规则计算的积分。
·总积分——存量积分与增量积分之和。
图 5.13
整个报表中包含数十个网点、三万多名客户的积分数据。显然,我们并不关心某个客户对应的积分是多少,而关心每个网点的积分是多少。因此,必须对该报表进行数据汇总,生成汇总表。
现使用数据透视表,按照机构名称对网点的存量积分总和、增量积分总和以及总积分进行汇总。以下是具体的操作步骤。
Step01 将光标定位在报表任意单元格,按Ctrl+A快捷键选中整个数据表区域。
Step02 切换到“插入”选项卡,在“数据透视表”列表选择“数据透视表”选项,如图5.14所示。
此时会打开“创建数据透视表”对话框。在对话框中选择数据透视表产生在新工作表,如图5.15所示。
图 5.14
图 5.15
Step03 单击“确定”按钮后,Excel会创建一个右侧带有“数据透视表字段列表”窗口的工作表。字段列表说明如图5.16所示。
图 5.16
Step04 用鼠标可将字段列表内的字段拖入下方的“报表筛选”、“行标签”、“列标签”、“数值”区域。现将“机构代码”和“机构名称”选入“行标签”区域,将“客户姓名”、“存量积分”、“增量积分”和“总积分”选入“数值”区域,如图5.17所示。
由于“客户姓名”是文本,在选入“数值”区域后会自动按计数处理,而其他三个数值型字段则会按求和进行处理。
完成字段设置后,该工作表左侧会自动生成如图5.18所示的数据透视表。
图 5.17
图 5.18
Step05 数据透视表在生成时自动按机构代码添加了汇总项,我们并不需要。将光标定位在任意汇总行右击,在弹出的快捷菜单中取消勾选“分类汇总‘机构代码’”选项,如图5.19所示。
图 5.19
最终生成的数据透视表如图5.20所示。
图 5.20
经过数据透视表的分类汇总处理后,工作表在原来三万多条数据的基础上生成了一个仅有数十行数据的汇总表。这是一个二维表,可以作为动态图表的数据源。