随着数据分析工具的不断更新,我们所熟知的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. 【探索之路】机器人篇(4)-根据3D文件来优化自己的机器人模型

    此章节不是必须做的!!!! 因为我已经用solidworks画了机器人的3D模型,那我就直接导入已经画好的三维模型. 如果大家没有画也是可以直接使用上一章节我们已经构建的机器人模型.我这里只是一个对显 ...

  2. hadoop伪分布式平台组件搭建

    第一部分:系统基础配置 系统基础配置中主完成了安装大数据环境之前的基础配置,如防火墙配置和安装MySQL.JDK安装等 第一步:关闭防火墙 Hadoop与其他组件的服务需要通过端口进行通信,防火墙的存 ...

  3. java并发包工具(java.util.Concurrent)

    一.CyclicBarrier 作用:所有线程准备好才进行,只要一条线程没准备好,都不进行 用法:所有线程准备好以后调用CyclicBarrier的await方法,然后主线程执行CyclicBarri ...

  4. 第四章节 BJROBOT 线速度校正 【ROS全开源阿克曼转向智能网联无人驾驶车】

    BJROBOT 线速度校正   1.把小车平放在地板上,用卷尺作为测量刻度,选取车头或者车尾处作为小车的起点, 打开资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjro ...

  5. ElasticSearch--一、使用场景以及对应软件配置安装

    废话不多说,直接来硬的!我在使用的时候使用的是mysql数据库. 一.ElasticSearch概念和使用场景 1.当我们需要搜索海量数据的时候,就可能会用到.以下使用的场景有哪些呢? 搜索海量数据 ...

  6. netty服务端客户端启动流程分析

    服务端启动流程 我们回顾前面讲解的netty启动流程,服务端这边有两个EventLoopGroup,一个专门用来处理连接,一个用来处理后续的io事件 服务端启动还是跟nio一样,绑定端口进行监听,我们 ...

  7. 在kotlin用jni调用c++的dll中踩的坑

    在kotlin用jni调用c++的dll中踩的坑 can't find dependents libraries 不是个有效的32位程序(或者是?????32??????) 常规检查 java 指针 ...

  8. Python+MySQL随机试卷及答案生成程序

    一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 下载地址:https://www.python.org/ ...

  9. 【SpringBoot1.x】SpringBoot1.x Web 开发

    SpringBoot1.x Web 开发 文章源码 简介 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty 或 Undertow 轻松创建独立的 HTTP ...

  10. EGADS框架处理流程分析

    最近在搞异常检测相关的工作,因此调研了业界常用的异常检测系统.通过查阅相关资料,发现业界对雅虎开源的EGADS系统评价比较高,其git项目已有980个star.这周阅读了项目的源码,梳理了系统框架的基 ...