从原始数据到分析报告:Excel数据透视表高效达人养成记
上QQ阅读APP看书,第一时间看更新

1.1 不规范表格结构的重新搭建

所谓不规范表格结构,就是表格结构不满足数据库要求,比如二维表格,带合并单元格的多行标题,不同类型的数据保存在了同一列,等等。下面我们结合实际工作中经常遇到的几个问题,介绍表格结构重新搭建的实用技能和技巧。

1.1.1 把多行标题的数据区域转换为数据清单

具有合并单元格的多行标题的数据表格,是很多人喜欢设计的一种表格结构,实际上,这样的表格是报告的结构,而不是标准数据库的结构,所以无法使用透视表来汇总分析数据。

案例1-1

图1-1是一个具有合并单元格的多行标题的数据表格,这个表格在分析数据方面非常不方便,除非使用函数做固定格式的分析报告。如果想使用透视表来进行各角度、多维度的分析,则需要把这个表格转换成图如1-2所示的数据清单。

图1-1 带合并单元格的多行标题的表格

下面介绍这种类型表格的转换方法。

01 首先设计如图1-3所示的表格结构。

图1-2 标准的数据清单

图1-3 设计标准数据清单结构

如果产品个数不多,可以使用手工的方法在A列和B列分别输入产品名称和月份名称。

但如果产品很多,比如有产品100个,每个产品所用月份数为12个,那么需要设计100*12=1200行数据,这样的工作量是比较大的,也是很烦琐的。我们可以使用下面的方法快速构建A列产品名称和B列月份名称数据列。

(1)先设计一个二维表格,A列是产品名称,第1行是月份名称,然后在单元格都输入数字1,如图1-4所示。

图1-4 设计辅助区域

(2)按“Alt+D+P”组合键,打开“数据透视表和数据透视图向导—步骤1(共2步)”对话框,选择“多重合并计算数据区域”选项按钮,如图1-5所示。

(3)单击两次“下一步”按钮,打开“数据透视表和数据透视图向导—步骤2b(共3步)”对话框,选择辅助数据区域,单击“添加”按钮,如图1-6所示。

图1-5 按“Alt+D+P”组合键,打开“数据透视表和数据透视图向导”对话框

图1-6 选择添加区域

(4)单击下一步,打开“数据透视表和数据透视图向导—步骤3(共3步)”对话框,选择“新工作表”选项按钮,如图1-7所示。

图1-7 选择透视表显示位置

(5)单击“完成”,就得到一个基本的透视表,如图1-8所示。

(6)双击透视表最右下角的单元格,也就是两个“总计”交叉单元格(此案例是数值216的单元格),就得到一个明细表,如图1-9所示。

图1-8 制作的基本透视表

图1-9 得到的明细表

(7)删除C列和D列,然后把A列和B列的数据复制到一个新工作表中,就得到产品名称以及月份名称列表(参阅图1-3)。

(8)最后删除无用的附表工作表。

02 在如图1-3所示的单元格C2输入下面的公式,然后往右往下复制,即得到一个规范的数据清单(参阅图1-2):

=INDEX('2015年销售汇总'!$B$3:$AK$20,MATCH($A2,'2015年销售汇总'!$A$3:$A$20,0),MATCH($B2,'2015年销售汇总'!$B$1:$AK$1,0)+COLUMN(A1)-1)

1.1.2 将二维表格转换为数据清单

所谓二维表格,就是表格只有一行标题和一列标题,这样结构的表格实际上是简单的汇总表结构,但是很多人把它当成了基础表格。反过来,如果手头是这样的表格,现在要使用透视表进行各个角度的多维度分析,又该如何把这个二维表格还原成数据清单呢?

案例1-2

有人可能要问了:干吗辛辛苦苦地把这样的二维表进行转换啊?这样不是挺好的吗?

比如下面图1-10所示的二维表,是各个部门各项费用的汇总表,很直观也很清楚。但是,如果要分析各个部门的各项费用的占比,或者某项费用的各个部门的占比,是不是要设计表格,创建计算公式,很不方便?比如要制作两层分类结构的报表(外层是部门,内层是费用;或者外层是费用,内层是部门),是不是觉得很难?

图1-10 典型的二维数据表

如果把这个表格转换成如图1-11所示的清单型表格,就可以创建透视表灵活分析数据了。图1-12就是利用透视表分析的结果(透视表+图表,更加清晰)。

图1-11 清单型数据表

图1-12 利用透视表灵活分析部门费用

下面介绍如何把二维表格转换为数据清单。主要步骤如下。

01 按“Alt+D+P”组合键,打开“数据透视表和数据透视图向导—步骤1(共3步)”对话框,选择“多重合并计算数据区域”选项按钮,如图1-13所示。

02 单击两次“下一步”按钮,打开“数据透视表和数据透视图向导——步骤2b(共3步)”对话框,选择辅助数据区域,单击“添加”按钮,如图1-14所示。

图1-13 按“Alt+D+P”组合键,打开“数据透视表和数据透视图向导”对话框

图1-14 选择添加区域

03 单击下一步,打开“数据透视表和数据透视图向导—步骤3(共3步)”对话框,选择“新建工作表”选项按钮(参阅图1-7)。

04 单击“完成”,就得到一个基本的透视表,如图1-15所示。

图1-15 制作的基本透视表

05 双击透视表最右下角的单元格,也就是两个“总计”交叉单元格(此案例是数值840097单元格,也就是单元格K14),就得到一个明细表,如图1-16所示。

06 在表格的“设计”选项卡中,从“表格样式”中单击“清除”按钮,清除表格格式,如图1-17所示;并在“工具”中单击“转换为区域”,如图1-18所示。这样就把得到的表格转换为普通数据区域。

07 最后修改表格标题,得到需要的数据清单。

图1-16 得到的明细表

图1-17 清除表格样式

图1-18 转换为普通数据区域

1.1.3 将多列文字描述转换为一个列表清单

有时候,我们也会遇到这样的表格:有很多列,每列是一个部门下员工姓名列表,现在要做成一个员工名单清单,以便于输入其他数据,并进行分析。

案例1-3

图1-19就是这样的一个表格,现在要求转换为右侧所示的名单清单。主要步骤如下。

图1-19 原始数据及要求的结果

01 首先在原始数据区域左侧插入一个辅助列,输入标题和任意的数据,如图1-20所示。

图1-20 在原始数据左侧插入辅助列

02 按“Alt+D+P”组合键,制作包含辅助列在内的数据区域的多重合并计算数据区域透视表,详细步骤前面两个例子都有介绍,此处不再赘述。就得到基本的数据透视表,如图1-21所示。

03 双击透视表最右下角的两个“总计”交叉单元格,就得到一个明细表,如图1-22所示。

04 删除A列和D列,把表格样式清除,并把表格转换为区域,修改标题。

05 注意此时的姓名列有空格,然后再选择B列,删除B列所有空单元格的行,最后就得到需要的结果。

如何批量删除空单元格所在的行,我们将在后面相关的例子中进行介绍。

图1-21 制作的基本透视表

图1-22 得到的明细表