打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel超级透视表到底超级在哪里:带你看懂Excel建模分析
userphoto

2022.10.28 北京

关注

很多人认为Excel超级透视表跟数据透视表是差不多的东西。其实,除了在最终的展示方式上基本一样,二者在数据分析上的实现方式是截然不同的。

本文试图先从总体上帮助你了解Power Pivot的原理,掌握Excel数据建模分析的框架。

首先我们从“Power Excel”说起。

Power Excel

Power  Excel是我自己“创造”的一个概念,并不对应一个单独的产品或服务。我用这个概念来描述现在使用Excel进行数据处理/分析/展示的一种知识框架。

这是Power Excel的一个组成:

  • Excel

  • Power Query

  • Power Pivot

其中,Excel是我们大家熟悉的工具,当然,随着动态数组和LAMBDA函数的出现,要求我们越来越多的采用“函数式编程”的方式进行数据的处理。当然,采用传统方式仍然是可行的。

Power Query就是一个ETL工具(Extract,Transform,Load),作用就是抽取数据(Extract,例如,从不同的数据源获取需要的全部或部分数据),数据转换(Transform,包括数据清洗,根据业务规则进行加工等),加载(Load,将数据整合加载的需要的位置,比如Excel表格,Excel数据模型,Power BI数据集等)。

Power Pivot是数据分析工具,其结果是呈现在Excel工作表中,同时,其强大的分析能力依赖于背后的数据模型。

Power Query和Power Pivot本身是Excel的插件,可以在Excel中直接使用。从Excel 2016开始,它们被集成在Excel中,作为Excel的一部分功能。

注:Power Query和Power Pivot从很早以前就开始存在了,只不过最近几年才慢慢被越来越多的人熟悉。我以前写过一个Excel系列的“编年史”,有兴趣的朋友可以看Excel 2016/2019/2021/Office 365,到底应该使用哪个版本(1):Excel的前世今生

注:一开始,微软本来的方向是Power Query整合和处理数据,Power Pivot对数据建模分析,然后用Power View展示分析结果。后来发现这么做挺好,干脆将三者一整合,成了Power BI,现在Power BI成为了单独的服务产品,并且还有Power BI Desktop产品可以免费使用。不过Power BI里的Power Query和Power Pivot跟Excel中的几乎没有区别。

数据透视表和超级透视表的区别

业务上的很多分析是普通的透视表不能完成的。

比如,

如果要对上表中的各区房价进行分析,用数据透视表只能进行平均值分析:

但是,平均值是很容易受极端值的影响的,个别超大或超小的值导致平均值的代表性不足。业务上经常需要进行中位数分析:

这个用普通数据透视表就无法做到。但是用超级透视表就可以很简单完成。具体做法请参见【不可能的数据透视表】如何用数据透视表计算中位数

传统的透视表直接对Excel单元格区域或超级表中的数据进行分析。而超级透视表必须要求先将数据加入到数据模型中才行:

而数据模型的强大威力,实际上是基于其背后的DAX。

下图展示了进行中位数分析的过程:

数据模型

数据模型非常简单,可以这样理解:

数据模型就是一组创建了关系的表格。

这些表格跟Excel中的表格非常类似:

简直一模一样。

这些表之间可以创建关系:

所谓关系就是两个表通过一个共同的列关联在一起。其作用就相当于在Excel中通过VLOOKUP等函数对两个表进行关联。这么做的好处是再也不需要将多个表通过函数合并为一张大表了,保留原来的结构,只要创建关系就好了。

我曾写过一篇文章:一个严肃的问题——还需要VLOOKUP函数吗?这里介绍了关系和VLOOKUP函数的关联。

DAX

DAX是英文 Data Analysis Expressions的缩写。

DAX是一门公式编程语言!

很复杂吧!

其实换句话说,DAX就是一系列的函数组成,可以处理各种数据计算。

数据模型中的计算就是由DAX进行的,然后通过超级透视表进行分析和展示。

DAX的“编程”就好像我们介绍过的Excel函数式编程一样。

而且,DAX函数本身就是发展自Excel,两者有大量的函数都是一模一样的的:

上图是DAX中的文本函数和日期函数,仔细看,有大量跟Excel中同名的函数。

我们可以使用这些函数创建辅助列(数据模型中叫做计算列):

也可以创建度量值:比如上面例子的中位数,或者下面的例子:

这个创建度量值的区域是关联到模型中每个表格的计算区域,专门创建度量值。(关于度量值的介绍请看文末视频)。

度量值就好像是Excel中的自定义函数一样,通过公式定义了一种计算逻辑。但是这个度量值可以在超级透视表中进行展示:

在DAX中写公式和在Excel中写公式很相似。

这是简单的公式:

=MONTH([日期])

这是复杂的公式:

=     var nsrmtd =         CALCULATE(            SUM(                'NSR Data'[NSR]            )        )
var nsrytd = TOTALYTD( SUM( 'NSR Data'[NSR] ), 'Dim_Date'[Date] )
var selectedperiod = SELECTEDVALUE('Dim_Period'[Period],"MTD") var selectedManufacture = SELECTEDVALUE('Dim_Manufacturer'[Manufacturer]) return SWITCH( selectedperiod, "MTD", if(selectedManufacture="TCCC", nsrmtd), "YTD", if(selectedManufacture="TCCC", nsrytd) )

不要觉得陌生,理解逻辑后很简单。其实跟现在Excel中写公式很相似,不信就看看下面的Excel公式:

=LET(    products, SORT(UNIQUE(Funds[名称])),    maxdate, MAXIFS(Funds[日期],Funds[名称],products),    mindate, MINIFS(Funds[日期],Funds[名称],products),    ev,SUMIFS(Funds[累计净值],Funds[名称],products,Funds[日期],maxdate),    pv,SUMIFS(Funds[累计净值],Funds[名称],products,Funds[日期],mindate),    nper, COUNTIF(Funds[名称],products),    cagr, (ev/pv)^(1/nper)-1,    rslt, HSTACK(products, cagr),    rslt)

如果你不熟悉这种公式的写法,建议从现在起开始熟悉起来。因为,在Power  Excel的框架下,普遍提出了“函数式编程”的概念,包括Excel,Power Query,Power Pivot都是如此,仍然固守原有的习惯,会导致在数据处理和分析上越来越困难。

DAX能做什么

下面我们展示几个例子来为大家介绍DAX或者超级透视表能做什么样的分析(仅仅是走马观花的展示,详细解释请关注后续的文章)

1. 文本透视

详细介绍参阅不可能的透视表之如何在透视表中显示文本

2. 客单价分析

详细介绍参阅客单价分析——不用Power Pivot,还真是不太容易搞定!

3. 日期函数应用-只分析1月份的数据占比

这里使用了这样的度量值:

Qty_Jan_%:=var datetable=CALENDARAUTO()var mindate = MINX(datetable,[Date])var adate = DATE(2022,2,1)var  qty_jan =  SUMX(    CALCULATETABLE(      '供应明细',       '供应明细'[时间] < adate &&       '供应明细'[时间] > mindate    ),    [产品饮用量]  )return  DIVIDE(qty_jan, SUM('供应明细'[产品饮用量]))

4. 不同百分比的计算方式

通过一个简单的公式就可以做到:

Vol%:=DIVIDE(  [vol],   CALCULATE(    [vol],    ALL('产品表')  ))

5. 还可以非常方便的处理层级数据,例如组织结构,市场架构,BOM等数据:

6. 时间智能函数非常强大,例如,可以非常容易地统计分析月/季/年初(末)的数据:

只要使用简单的公式:

月末:=CLOSINGBALANCEMONTH(SUM('供应明细'[产品饮用量]),'日历'[Date])月初:=OPENINGBALANCEMONTH(SUM('供应明细'[产品饮用量]),'日历'[Date])季末:=CLOSINGBALANCEQUARTER(SUM('供应明细'[产品饮用量]),'日历'[Date])年末:=CLOSINGBALANCEYEAR(sum('供应明细'[产品饮用量]),'日历'[Date])

详细介绍请看视频


加入E学会,永久免费学习更多Excel应用技巧

http://www.tropic.com.cn/portal/learn/class_list

详情咨询客服(底部菜单-知识库-客服)

Excel+Power Query+Power Pivot+Power BI


Power Excel 知识库    按照以下方式进入知识库学习
Excel函数   底部菜单:知识库->Excel函数

自定义函数  底部菜单:知识库->自定义函数

Excel如何做  底部菜单:知识库->Excel如何做

面授培训  底部菜单:培训学习->面授培训

Excel企业应用  底部菜单:企业应用

也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
文章合集第3波:60+篇Power BI(含Power Pivot)系列,打好数据建模及分析基础
比Excel透视表好用10倍都不止,“超级”透视表来了!
你会超级透视表吗?比Excel透视表好用10倍都不止!
第一次感受超级透视表的强大
DAX查询入门:DAX Studio介绍
为什么学不会Excel超级透视表?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服