什么是PowerPivot?和PowerBI什么关系?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是PowerPivot?和PowerBI什么关系?相关的知识,希望对你有一定的参考价值。
参考技术A 一.从EXCEL开始说起什么是PowerPivot说起PowerPivot可能很多人会陌生,但是如果说起Excel的数据透视表,应该每个使用EXCEL的人都知道。其实数据透视表的英文叫做Pivot Table, Pivot本质上可以理解为筛选器和计算器,包括切片器筛选,整表筛选,列筛选,行筛选,输出值等,我们可以根据这种层层筛选情况得到对应的分析结果。
而PowerPivot,我们可以简单认为是Excel数据透视表(Pivot Table)的升级。Power Pivot在形式上与Pivot没有差别,但内在的优势主要体现在以下三点:
(一) 是数据建模工具而非单表数据整理工具
Excel的数据透视表连接的是单个的数据表,而Power Pivot连接的是数据模型,很简单的例子,我们用excel进行透视,只能针对单张表。而PowerPivot,可以利用关系构建多个表的联系,可以搭建庞大的数据模型,所以它是一个数据建模工具,而学习Power Pivot其实就是在学习数据建模。
(二) 处理数据容量远大于Excel
对于excel来说,每个工作表只能存储100W条数据多数据条件下处理速度慢,对于复杂的BI解决方案而言,学习难度大,技术门槛高。而PowerBI就是介于excel和复杂BI工具之间的一种,他既可以处理千万级数据, 同时和和EXCEL深度融合,可直接通过EXCEL建模,对于财务、市场等工作人员学习上手简单 。
(三) 分析功能远胜EXCEL数据透视表
Excel透视表只能完成基本的聚合运算以及有限扩展,比如求和、平均值等。但遇到类似于同比,环比,年度至今,ABC分析等稍微复杂的分析往往很难进行。而powerbi可以直接从一个或多个来源获取数据,结合DAX语言构建各种各样的计算列和度量值,搭建数据模型并直接形成“超级透视表”进行数据探索!
比如要计算去年同期的值,PowerPivot中一个SAMEPERIODLASTYEAR函数便可实现。
比如建立了很多分析的维度度量值,都可以在数据透视表中随切片器随时灵活调用。
最最重要的是,PowerPivot建模可以和PowerBI Desktop结合,生成各种个性化仪表板并进行发布,供组织在 Web 和移动设备上使用,获取针对其业务的全方位独特见解。
二、PowerBI和 PowerPivot 什么关系?
既然说到了PowerBI Desktop,那PowerBI和PowerPivot什么关系呢?从下图可以看出,Power Pivot 数据建模是Power BI组件的灵魂和核心,她被称为微软近20年来最伟大的发明,也是PowerBI的灵魂。
最后的广告时间,如果想系统学习PowerPivot和DAX语言,欢迎学习我们小组的课程: https://study.163.com/course/courseMain.htm?courseId=1209728813&share=2&shareId=400000000436012 ,现在还有优惠哦!
数据可视化之powerBI基础(二十)Power BI度量值和新建表,有什么异同?
https://zhuanlan.zhihu.com/p/101812525
?PowerBI中,有三个地方可以使用DAX,分别是度量值、新建列和新建表,这三个功能并成一排摆放在这里,如图所示,
之前的文章中曾介绍了度量值和计算列的异同(收藏 | Power BI计算列和度量值,一文帮你搞清楚),这篇文章再来带你认识度量值和新表的异同。
度量值和计算列容易混淆,但和新表好像并不会搞混,毕竟一个是值,一个是表,区别还是很大的。
但在实现特定的业务需求上,他们又都可以实现,下面以一个案例来介绍。
该案例来自知识星球中星友的提问,模拟一个订单表,包含客户名称、产品名称以及产品类目等,如下图:
需求:
仅购买过一个产品类目的客户有哪些?
购买过多个产品类目的客户有哪些?分别购买了哪些类目?
下面以新建表和度量值两种方式来实现。
新建表
因为这个需求返回的客户肯定不止一个,所以很自然的想到用新表的方式。
这个问题的关键是先统计出每个客户购买了几个类目,然后分别返回购买了一个和多个类目的客户列表就行了。
用DAX处理很简单,如下图,
先使用SUMMARIZE进行统计,然后FILTER返回等于1的表,只有B和C两个客户仅购买过一个类目的产品。
同理,购买了多个类目产品的客户可以这样写,
对于购买了多个类目的客户,还要列出来购买了哪些类目,可以在上面这个代码的基础上优化一下:
返回的表正好是需要的效果。
但是通过这种方式返回的客户列表是固定的,因为它的上下文已经被固化了,无法根据外部的筛选器返回不同的列表。
如果想要动态的实现需求,比如按照日期切片器,计算不同时间段的客户列表,怎么办呢?
动态的效果还是要靠度量值。
度量值
这种方式比较直接,只需要建两个简单度量值:
类目数量 = DISTINCTCOUNT(‘订单表‘[产品类目])
类目列表 =
CONCATENATEX(SUMMARIZE(‘订单表‘,‘客户表‘[客户],‘订单表‘[产品类目]),‘订单表‘[产品类目],"、")
这两个度量值的代码是不是要比新建表的DAX简单的多?你可以先思考一下是为什么?
把这两个度量值放入到矩阵中,客户名称作为行标题,就是我们要的效果,
想查看购买过一个类目或者多个类目的客户列表,使用筛选器就可以了,
并且它也可以动态响应外部筛选器,返回不同的结果,
就是这么简单。
总结
通过上面的示例,应该可以看出二者的区别,虽然都能返回一个特定的结果,但度量值更有优势:
代码更加简短,因为无需在代码中指明上下文;
计算更加灵活,因为它可以根据不同的上下文,实现动态的计算。
最根本的区别还是在于上下文,包括之前介绍过的计算列,三者比较,同样如此。
所以当你有了一个分析需求,想用PowerBI实现时,不要一上来就想DAX怎么写,用什么函数,而是先梳理自己的需求,审视自己的数据:
- 想要静态还是动态的效果?
- 是用新建表、计算列还是度量值来实现?
- 不同方式下,能提供的上下文是什么?
- 这个上下文是否有对应的维度表?
- 维度表与事实表是否已经建立了正确的关系?
最终的落脚点还是数据建模!
以上是关于什么是PowerPivot?和PowerBI什么关系?的主要内容,如果未能解决你的问题,请参考以下文章
哪里有关于Power BI的视频,想要了解一下Power BI四款工具
Powerpivot PowerBI相关组件下载安装(附操作截图)
谈一谈你在powerbi或者powerquery中学到的技能?以及怎么解决实际问题?
PowerBI 核心组件介绍(Power Query&Power Pivot & Power View& Power BI)