随着数据分析工具的不断更新,我们所熟知的Excel可能已经不是你想象中的样子了。

Excel和Power BI又有何千丝万缕的联系?

M语言和DAX语言又是什么样的存在?

操作他们又需要掌握什么样的技能?

通过我的讲解,从此你将发现一扇通往新世界的大门,开启你新的人生,让我们启航吧!

为方便书写,以下内容使用简写

Power Query : PQ

Power Pivot : PP

Power BI Desktop : PBI

一、先让我们大致了解下他们的联系

 
为了更加直观的表述他们的关系,我特意制作了一张图片用以说明.png

关系说明:

在Office2010时代,BI组建均以插件形式存在;2013时代,除了PQ,其他插件已全部内置;2016时代已全部内置相关插件;而Power BI就是将这些插件打包起来做了一个独立的软件,更加方便我们的使用,同时提供了在线版、移动版、桌面版,而我们通常所说的PBI指的就是Power BI的桌面版(Power BI Desktop)。其中BI组件包含Power Query、Power Pivot、Power View、Power Map四个。操作Power Query需要学习M语言、操作Power Pivot需要学习DAX语言,两则均属于函数式编程。而Power View和Power Map主要是做可视化,在Excel里面不是重点,已经逐渐被更为强大的PBI的仪表板取代。

Power BI系列组件:

Power BI 是一套商业分析工具,用于在组织中提供见解,全称:Power-BI决策分析系统。可连接数百个数据源、简化数据准备并提供即时分析。集数据获取、整理、呈现与一体。早期作为插件和Excel搭配使用,后续逐渐内置到Excel当中,现在已经开发出来独立的软件可以使用。

 
图片截图来至于BI佐罗的作品.png

二、对各部分做个简单的介绍

Office Excel

关于Office办公软件就不做过多的介绍了,只需要知道从Excel 2010开始才涉及到我们今天开始讲的内容,这之前的版本比如2003版和2007版均不支持相关功能。

Excel 中可用的三大数据分析工具:

Power Query

Power Query 是一种数据连接技术,可用于发现、连接、合并和优化数据源以满足分析需要。Power Query 的功能在 Excel 和 Power BI Desktop 中可用。通常需执行一些常见步骤才可使用 Power Query。——微软的解释

Power Query使用场景:
  • 1、PQ可以加载N多种数据源,包括常见的Excel文件、文件夹、TXT文件、CSV文件、SQL Server、MySQL、Web等。可对数据进行合并、追加等之前需要VBA才能完成的工作。
  • 2、PQ操作完的步骤可以重复执行,下次再操作同样的步骤只需要刷新即可得到最新的数据。
  • 3、PQ写好的操作步骤可以再次编辑和更改,还可调整操作步骤。你可以想象成你录制了一个宏,并且这个宏是可以根据你的需要随时可以编辑的。如果我们直接修改宏的代码实现则需要学习VBA编程,但是在PQ里面操作基础功能只需要像在Excel中的工具栏按钮进行操作一样简单。
  • 4、PQ加载的数据可以突破Excel中100万行的限制,而加载数据的大小取决于你的内存上限。我曾经测试过9千万条的数据进行加载,而有人测试过100亿条数据。 在你原有的认识中你认为Excel可以加载100亿条数据吗?
  • 5、PQ和PP结合,我们出日报则只需要更新数据源后刷新一下就可以完成。对于重复性的工作,可以称为是【神器】,效果堪比VBA,但学习门槛缺非常低。
  • 6、Office2010、Office2013没有内置PQ,使用必须去微软官网下载插件才能使用。下载Power Query,下载安装后会在Excel菜单栏新增一个Power Query的菜单。Office2016内置了PQ,在数据菜单下-新建查询。
M语言:

M语言是操作PQ的语言,目前由700多个函数组成。但你不用怕,我们学习PQ只是为了完成我们基本的工作,没有必要对这些函数全部都熟悉,就像我们学习Excel不需要对VBA和全部的函数熟悉一样,只需要掌握几个基本的函数即可让你游刃有余,即便是你不会任何M函数,则依然可以通过工具栏上的按钮来实现,而且很多功能与Excel中是类似的,学习门槛很低。后续我会提供这些按钮的功能讲解和PQ的相关操作教程。

 
图片.png
 
PQ菜单及工具预览.png
Power Query总结:

你可以简单的理解为是一个数据加载和数据清洗工具。在实际操作中由于受限于Power Query计算效率,通常作为数据加载使用的较多,但其数据清洗功能也是非常强大的,甚至可以做网络爬虫。

Power Pivot

PowerPivot 是一种数据建模技术,用于创建数据模型,建立关系,以及创建计算。 可使用 PowerPivot 处理大型数据集,构建广泛的关系,以及创建复杂(或简单)的计算,这些操作全部在高性能环境中和所你熟悉的 Excel 内执行。——微软的解释

Power Pivot使用场景:
  • 1、PP是PQ的好搭档,一般配合使用的场景非常多,如果你要做一份日报,可以通过PQ加载数据直接生成想要的数据。如果有更加复杂的需求可以再链接到PP里面使用度量值+多维数据集函数将你需要的结果返回。下次在做日报只需要在更新数据源后全部刷新即可完成。下载Power Pivot
  • 2、可以突破数据透视表的限制,制作更加自由的数据呈现结构。
  • 3、可对整个数据库进行复杂查询,具有快速内存处理能力,和PQ一样不受Excel100万行的限制,结合使用DAX Studio可以实现类似SQL的查询效果。
  • 4、和PQ一样,也无需受限于数据来源形式,PP也支持非常多的数据源格式,不需要受限于Excel文件。我们可以选择直接使用PP加载源数据,也可也通过PQ加载然后再链接到PP中进行使用。
  • 5、使用PP中的DAX语言可以有两个方向,数据分析方向和数据查询方向。数据分析方向主要使用度量值,数据分析师使用的较多。查询方向是使用DAX处理各种复杂的表格关系,其查询效果类似SQL。
DAX语言:

与PQ一样,操作PP也需要一门变成语言,叫做DAX语言。DAX语言由200多个函数组成,和PP的M语言均被成为函数式编程。看到编程二字,你不必害怕,因为DAX的函数实际上部分函数跟我使用的Excel函数一样或者类似,如果作为入门你会很快上手。涉及到DAX更加复杂的操作需要你需要理解两个概念:筛选上下文和行上下文,后续我会做简单的介绍。

 
PP数据加载支持的类型.png
 
表格关系视图.png
Power Pivot总结:

PP主要适用于数据模型的搭建方向,作为数据的查询也是优秀的工具。PQ和PP是一对在数据处理方面具有划时代意义的工具。但不要听到搭建数据模型就感觉很复杂,其实并没有我们想象的那么高大上,只要开始学习都会很容易的入门。

Power View

Power View 是一种数据可视化技术,用于创建交互式图表、图形、地图和其他视觉效果,以便直观呈现数据。 Power View 在 Excel、BI SharePoint、SQL Server 和 Power BI 中均可用。——微软的解释

Power View、Power Map使用场景:

Power View在Excel中已经被微软放弃,如果你对Excel不熟悉,你甚至找不到它,所以实际工作中,使用的并不是很多,而这部分内容在PBI中对应的就是仪表板。而Power Map在Excel中做展示使用的相对多一些,而同样可以在PBI中通过地图来实现。

 
图片来源于Power 工坊微信公众号.png
 
Power Map示例.png

三、学习BI组件的入门途径

  • 从Excel入门-该方法适合Excel用户

如果你之前只是使用Excel,那么可以通过Excel开始学习这些BI组件,你会发现这将颠覆你以前对Excel的认识。

  • 从Power BI入门-该方法适合数据分析人员

如果你是一名数据分析相关人员,那么使用Power BI Desktop将是一个不错的选择,其和Excel中的组件基本雷同,可以非常方便的使用仪表板展示你所需要表达的内容,是数据分析师的不二之选。

  • 从SSAS入门-该方法适合开发人员

SSAS是SQL Server的一个组件,具体我也未曾使用过,是属于企业级BI的工具。

从任何途径开始学习都可以对其他部分触类旁通,其关键部分均是一样的。

四、缺点

凡是都有两面,虽然PQ和PP万般好,但是也有其限制。

  • 1、不适合数据量特别大的数据,一般数据超过2G就不建议使用了,其效率会明显降低。而我们平时处理个几十万上百万的数据还是非常流畅的。如果要优化其性能并结合SQL使用能发挥更大的效果。

    -2、PQ的计算效率低,在之前的探讨中,如果大量在PQ中做复杂的计算会导致计算效率明显降低,尤其是分组操作、合并查询等。我们目前的处理方式是仅使用PQ加载数据并做简单的数据清洗,大量的分析和计算则交给PP来做,因为PP的效率比PQ高了很多。但PQ的效率依然比在Excel里面高了很多。

    -3、定位有点尴尬,一般办公人员学习可能稍嫌难一些,同时作为IT人员一般又不屑于使用。但目前的现状正在改善,Power BI也在不断迭代,桌面版平均每月都有更新,有时候甚至是周,已经成为微软战略及产品,学习BI的人员也在不断的增多。
  • 4、参考资料少,不像Excel那么成熟,教程特别多,网上随处可见。BI组件的有质量的教程网上还是不太容易找,这些限制了部分想要学习的同学的积极性。如果是Excel入门可以看看刘凯老师翻译的《用PowerPivot建立数据模型》,如果是从PBI入门可以看看马世权老师的《从Excel到Power BI》,或者也可也看下Power 工坊的网络课程。后续我也会写或者录制一些相关的教程,方便大家学习。

五、总结

其实今天已经介绍了非常多的内容,最后也做一个总结。我得声明一下,今天我介绍的功能,WPS都是不支持的,必须是微软Office办公软件才可以。如果你是首次使用PP,这需要设置一下,才能使用,文件-选项-自定义功能区-将开发工具打勾,设置完毕后点击开发工具菜单下的COM加载项,对Power Pivot勾选后才能使用,会多一个Power Pivot的菜单。

 
图片
 
图片.png

本文转载于:

Excel、Power BI、Power Query、Power Pivot、M语言、DAX语言之间的关系 - 简书
https://www.jianshu.com/p/b3d6fdf480e6

数据科学交流群,群号:189158789 ,欢迎各位对数据科学感兴趣的小伙伴的加入!

PowerBI系列组件关系详解的更多相关文章

  1. slf4j log4j logback关系详解和相关用法

    slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...

  2. 【转】UML类图与类的关系详解

    UML类图与类的关系详解   2011-04-21 来源:网络   在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...

  3. UML类图与类的关系详解

    摘自:http://www.uml.org.cn/oobject/201104212.asp UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类 ...

  4. mongo 3.4分片集群系列之六:详解配置数据库

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  5. main.js index.html与app.vue三者关系详解

    main.js index.html与app.vue三者关系详解 2019年01月23日 11:12:15 Pecodo 阅读数 186   main.js与index.html是nodejs的项目启 ...

  6. slf4j、log4j、 logback关系详解和相关用法

    slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着“拿来主义”的态度,复制粘贴下配置文件就开始编码了, ...

  7. Hibernate中的多对多关系详解(3)​

    前面两节我们讲到了一对一的关系,一对多,多对一的关系,相对来说,是比较简单的,但有时,我们也会遇到多对多的关系,比如说:角色与权限的关系,就是典型的多对多的关系,因此,我有必要对这种关系详解,以便大家 ...

  8. slf4j log4j logback log4j2关系详解和相关用法

    来源:slf4j log4j logback关系详解和相关用法https://www.cnblogs.com/Sinte-Beuve/p/5758971.html The Simple Logging ...

  9. nginx高性能WEB服务器系列之四配置文件详解

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

随机推荐

  1. Javaweb前台界面代码复用总结

    servlet声明定义message信息传给前天界面判断输出message: if(booknamelist.size()==0) { message="根据书名查询没有结果!"; ...

  2. Dreamoon Likes Coloring 【CF 1329 A】

    传送门 思路:"Dreamoon will choose a number pipi from range [1,n−li+1](inclusive) and will paint all ...

  3. 「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?

    背景 众所周知,Elasticsearch是⼀个实时的分布式搜索引擎,为⽤户提供搜索服务.当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固 ...

  4. b站视频下载技术分享

    最近无聊分析了一下b站的视频流协议,简单分享下爬取的流程. 首先先要找到视频对应的aid和cid,aid就相当于av号,而av号对应网页下的每一个视频都有对应的cid,普通视频就是分p,番剧就是集数, ...

  5. SpringBoot整合Shiro权限框架实战

    什么是ACL和RBAC ACL Access Control list:访问控制列表 优点:简单易用,开发便捷 缺点:用户和权限直接挂钩,导致在授予时的复杂性,比较分散,不便于管理 例子:常见的文件系 ...

  6. 每日一个linux命令4

    mkdir命令 linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. mkdir test    创建一个空目录 ...

  7. 使用Pr压缩视频,增大音量

    视屏压缩(亲测有效教程):https://www.zhihu.com/question/67762625 音量增大(亲测有效教程):https://jingyan.baidu.com/article/ ...

  8. PAT天梯赛练习 L3-003 社交集群 (30分) DFS搜索

    题目分析: 一共有N个编号为1~1000的人,以及一共有编号为1~1000种不同的兴趣,在题目给出1~N编号的人员每个人喜欢的兴趣的id后,要求统计出不同的人员集合的个数以及每个人员几个的人数从大到小 ...

  9. Ansible User 模块添加单用户并ssh-key复制

    Ansible User 模块添加单用户并ssh-key复制 1 Ansible 版本: ansible 2.9.6 config file = /etc/ansible/ansible.cfg co ...

  10. Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed

    安装docker时,自己添加了国内的hub.docker.com镜像 [root@ce-docker ~]# systemctl restart docker 出现以下报错:Job for docke ...