1.2 Power Pivot在数据分析方面的优势
尽管传统的Excel数据透视表已经很强大了,但在学习了Power Pivot之后,你就会深深地体会到,Power Pivot中的Power确实是所言不虚。下面我们通过几个数据分析场景来看看Power Pivot的特殊能力。
1.2.1 多表关联能力
分析对象的原始数据通常称为数据源。传统Excel数据透视表只能对单一的表进行数据分析,它的数据源只能是一个独立的大表。尽管后来传统Excel数据透视表也提供了初步的多表关联功能,但这个功能非常原始,远远满足不了我们日益复杂的数据分析需求。
在一般情况下,作为传统Excel数据透视表分析对象的大表(数据源)可能由公司IT部门提供,可能是我们直接链接公司数据库中的表,也可能是本部门业务数据的积累。我们通常将这些不由自己控制的数据称为外部数据。
此外,这个“大表”往往缺少一些满足特定数据分析需求的、至关重要的信息。例如,本部门自定义的数据分组规则,一些绩效指标等级划分,等等。我们通常将这些由本部门自行维护的数据称为本地数据。
在数据分析实践中往往需要将这些本地数据与外部数据进行关联,得出各种分组划分标准下的数据分析结果。对于这种情况,不完美的解决方案是,利用Excel中的VLOOKUP()函数提取本地数据并将其合并到已经导入Excel中的外部数据表(简称表)中,然后进行数据透视操作。这种方法虽然可以暂时解决问题,但每次更新原始数据,我们都要检查一次VLOOKUP()函数是否正确地计算了全部数据,明显降低了数据分析工作的效率,并且有潜在的数据分析质量风险。
我们可以利用Power Pivot的多表关联能力(也称为Power Pivot的数据建模能力),将来自不同数据源的多个表按照表间的逻辑关系关联到一起,从数据源头建立起表间的关联关系,使数据提取和分析的过程浑然一体。
就这样,一旦建立数据分析逻辑,我们就可以用一键刷新的方式快速得到最新的数据分析结果,从而实现数据分析的流程化、自动化。在Power Pivot数据模型管理界面中将多个表按照表间的逻辑关系关联起来,如下图所示。
下图是基于上图所示的Power Pivot数据模型建立的Power Pivot超级数据透视表,它能够建立数据模型,并且基于数据模型进行分析,是Power Pivot超级数据透视表和传统Excel数据透视表的本质区别。因此,我们将基于Power Pivot数据模型建立的数据透视表统称为Power Pivot。Power Pivot的特点是数据在Power Pivot数据模型中存储和管理,数据分析结果在Power Pivot超级数据透视表中呈现。
单从外观上来看,Power Pivot超级数据透视表和传统Excel数据透视表似乎并没有什么不同,但如果仔细观察,会看到在上图右侧的“数据透视表字段”视图中有五个表,每个表都包含各自的字段名称,这明显与我们常见的传统Excel数据透视表不同。
在Power Pivot数据模型管理界面中,我们根据表内容间的逻辑关系建立了表与表之间的关联,即建立了数据模型。在已经建立了数据模型的前提下,对于一些数据分析操作,我们就可以将本来比较复杂的多表关联分析转换为直接将不同字段拖曳至数据透视表的相应区域的简单拖曳操作。
从数据建模的角度来看,Power Pivot实际上是一个可以对多表数据模型进行分析的工具(当然也可以只有一个表)。作为用户,我们可以将Power Pivot超级数据透视表看成一个对Power Pivot数据模型进行高级查询的工具。因此,我们对Power Pivot的学习,至少包含数据建模和数据分析两方面内容。
事实上,区别于传统Excel数据透视表,Power Pivot不仅能够对多个表进行数据建模操作,而且提供了一套让数据提取和分析更加灵活的DAX工具。在本书的前面章节中主要介绍Power Pivot单表数据模型和一些基本的DAX函数;在本书的后面章节中会详细讲解Power Pivot数据建模知识和相关数据分析方法。
1.2.2 功能更加丰富
在Power Pivot出现之前,传统Excel数据透视表可谓是独领风骚。传统Excel数据透视表除了能够对拖曳至值区域中的字段进行基本的批量求和计算,还能够使用数据透视表的一些预置选项实现其他常用类型的汇总计算,如求平均值、求方差、计数等。
然而,这些在传统Excel数据透视表中已经预置好的、不可改变的数据透视表汇总计算大大限制了传统Excel数据透视表的能力。要满足超出传统Excel数据透视表预置汇总计算能力的、复杂的数据分析需求,我们不得不使用传统Excel数据透视表之外的方法。例如,如果需要对数据源中某个字段进行不重复计数,或者对数据源中某文本字段按组别合并到数据透视表值区域中对应的单个单元格,则几乎无法使用传统Excel数据透视表的内置能力实现。但是Power Pivot超级数据透视表为我们提供了一套全新的DAX函数,利用它解决传统Excel数据透视表的上述难题变得轻而易举。
在Power Pivot的世界中,我们几乎可以应对所有传统Excel数据透视表无法解决的难题,唯一限制我们的是对Power Pivot数据模型理解的深度和对DAX表达式应用的熟练程度,而这些完全可以通过持续的学习和实践来提升。
使DAX表达式实现在Power Pivot超级数据透视表值区域中的单元格中显示每个图书子类下所销售图书书名的不重复列表,如下图所示。这种分析结果在传统Excel数据透视表中是无法得到的,而在Power Pivot中,使用一个简单的DAX函数即可得到。
1.2.3 更快的运算速度
传统Excel数据透视表存在一个严重的问题,就是运算的执行速度。经常使用传统Excel数据透视表的读者可能都知道,如果分析的数据量较大,那么哪怕只是简单地更改数据透视表的布局,也会等待相当长的时间。
其实Excel软件的开发者也知道这个问题的存在,并且提供了一个并不优雅的解决方案。他们在传统Excel数据透视表的“数据透视表字段”视图下方设计了一个“延迟布局更新”的复选框,在勾选这个复选框后,当我们在“数据透视表字段”视图中拖曳字段时,数据透视表不会在每次布局改变后立即实时显示新的分析结果,而是在确定数据透视表的最终布局后,通过单击旁边的“更新”按钮对数据透视表进行一次性的全面计算和更新。
在Power Pivot中,虽然“推迟布局更新”复选框和“更新”按钮仍然存在,但由于Power Pivot采用了一种全新的内部数据组织方式,因此针对海量的数据处理、分析和展示速度明显加快,从源头上解决了数据处理的速度问题,明显地减少了数据分析过程中的等待时间。