热门标签 | 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


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
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社区 版权所有