热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PowerPivot系列(1)做一个多表关联的数据透视表

先看一个图:这个系列的图在网上常被引用,所表达的关系曾经代表Microsoft公司数据分析工具的一个推荐组合:原始的数据(RawData)被加载到PowerQuery中进行清洗(P

先看一个图:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
这个系列的图在网上常被引用,所表达的关系曾经代表 Microsoft 公司数据分析工具的一个推荐组合:原始的数据 (Raw Data) 被加载到 Power Query 中进行清洗 (Power Query 是 ETL工具),然后数据再到 Power Pivot 中建模,最后放到 Power View / Power Map 系列进行展现。如今,Power Query 成为 Excel 的一个内置功能,Power Pivot 作为 Excel Add-in 使用,Power View / Power Map 则被 Microsoft 尽力隐藏不让用户看见。如果之前用过 Power View / Power Map 的用户,对这两个工具有依赖的话,通过繁琐的方式也可以调出来,但没接触过的用户,就不用再去学习了。这两个插件依赖于 Silverlight,也是微软放弃的一款产品。当然它们的功能还在,微软都集成到 Power BI Desktop 中了。Power BI Desktop 是微软新的一款自助式 BI 产品,Desktop 免费,功能强大,可以使用 M 表达式语言和 DAX 语言,对外可以与 R 或者 Python 对接。

根据Gartner 2019 数据分析和 BI 魔力象限的数据,Microsoft 以 Power BI 为代表的新一代 BI 工具已经处在领导者象限了:
《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
本篇基于多表关联实现一个数据透视表,来看看 Power Pivot 被称为超级数据透视表比 Excel 的数据透视表有哪些革命性进步。数据源在 SQL Server 中,示例数据我放到 Github 上方便大家下载。我们将用到两个表:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》

导入数据

Power Pivot 的数据来自 Excel 数据模型,Excel 数据模型是一个专门概念,代表 Excel 工作簿中类似数据库的模型,由表及表的关系构成。Power Pivot 是安装和激活后查看 Excel 数据模型最方便的工具,我也会在后面的文章中介绍其他查看方法。如何安装和激活 Power Piovt 网上有太多教程,故不再这里赘述。刚才提到过数据从数据源到 Power Query 再到 Power Pivot 的路径。我们先用这种方法。Power Query 加载数据请参考我之前的博客。请按下图,选择一个查询表后,右键,选择加载到菜单,确保数据已经被加载到 Excel 数据模型。

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
Power Pivot 直接导入数据的方法如下:通过【数据】选项卡,点击【管理数据模型】菜单。
《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
进入 Power Pivot for Excel 界面,在【主页】选项卡中,点击【从外部数据】> 【从 SQL Server】:
《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
填写服务器名称和登录选项,选择数据库,然后点击下一步

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
选择从表中和视图中导入数据:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
选择需要的 Products 表和 SalesOrders 表:
《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
两种方法的效果相同,数据都被加载到 Power Pivot。在【数据视图】中显示的界面如下:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》

在【关系图视图】界面中显示如下:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》

编制数据透视表

回到 Excel 界面,插入数据透视表,使用此工作簿的数据模型。如果没有将数据加载到数据模型,这个选项是灰色的。
《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
因为两个表建立了关联,所以我们可以自由选择 Products 和 SalesOrders 表的字段。和 Excel 传统的数据透视表相比,如果要达到这种效果,需要先用 VLookup 函数将相关字段放在一起。
《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
对字段使用如下布局:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》
得到数据透视表,增加切片器并且进行美化后的效果:

《Power Pivot 系列 (1) - 做一个多表关联的数据透视表》

示例数据

Github – create pivot table from linked tables


推荐阅读
author-avatar
叶子已经不是木头的了
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有