《EXCEL学习路径》一文当中我介绍过,EXCEL就像一艘航母,上面搭载了很多武器,导致很多人学习起来有些费劲。学习函数的时候,就遇到这样的问题,函数种类多样,维度多重,名称相近,场景差异大,让人理不清头绪。为此之前我也整理了EXCEL函数体系。陆续介绍了常规函数、数组函数、宏表函数、自定义函数之后,现在到了介绍一下EXCEL加载函数的时候了。

打开网易新闻 查看更多图片

加载函数大概分为两种:一种是用于SQL当中的聚合函数,一种是用于POWER PIVOT当中的DAX函数。聚合函数暂且不说,重点来介绍一下DAX函数。

DAX函数又被称为数据分析函数,一听这名字就知道了,它的存在就是为了处理数据分析。之前我的文章中把EXCEL的透视表,比作是一个低配的数据分析工具。那么现在DAX来了,除去编程以外,它应该算是一个高配的数据分析工具了,并且它不是单枪匹马来的,而是作为POWER PIVOT(大家都愿意称它为超级透视表)的灵魂,带着POWER BI而来。

本篇文章主要是介绍一下这个函数在EXCEL中的使用方法和大概的学习思路,

在使用方法上,EXCEL给DAX函数提供了很多个入口,让它发挥作用的路径可以说是四通八达,但要说明的是,其本质都是同宗同源:建立数据模型。换句话说,DAX函数就是在建立数据模型中进行使用的,如果你还不知道这些方式的话,一起来具体看一下使用方法,开启数据分析函数之路:

1、连接进入:现有连接转成表或数据透视表

打开网易新闻 查看更多图片

先通过“数据-现有连接”建立一个数据连接,弹出“导入数据”窗口,选择表,勾选添加到数据模型。

鼠标点击在生成的表中任意单元格,右键就能看到DAX函数的编辑选项了。

在这里可以按自己的需求编辑DAX函数,需要注意的是,此处只能输出“表”形式的结果,而不能输出“值”形式的结果。如果想要显示值也有办法,见例子。图中例子:通过筛选函数筛选符合条件的内容,然后用ROW和COUNTAX函数显示数值结果。此处不了解DAX函数具体用法没有关系,只是演示使用方法,是在哪里使用DAX函数,函数的具体用法会另外写文章介绍。

除了导入成表的形式外,也可以直接导入成数据透视表,数据透视表使用DAX函数的地方不太一样,不再是直接写公式,而是需要建立度量值了。因为数据透视表是处理字段的,所以需要把DAX函数装进度量值中。从这里开始,DAX函数的使用场景都会与另一个名词联系在一起:度量值。

打开网易新闻 查看更多图片

度量值是什么,度量值可以理解为用DAX函数的计算结果,因为度量值可以不断地被嵌套使用,也可以单独使用,灵活性很强。于是只要你开动脑洞,就可以利用它把源表中的数据,生成新的数据列、表、值,可以说是随心所欲。把所有的数据拆开、重组、揉碎,然后再把结果展现出来。这就是为什么POWER PIVOT被称为高配数据分析工具的首要原因。当然,除此之外,还有另外一个原因就是POWER PIVOT的建模功能,因为这两个特点,POWER PIVOT在众多的数据分析工具中,它必须占有一席之地。

2、加POWER PIVOT进入:直接在POWER PIVOT中使用

作为POWER PIVOT的重要组成部分,自然是可以直接在POWER PIVOT中使用的。先说一下(可能有人不知道),在EXCEL中加载POWER PIVOT方法:①通过加载项加载:选项----加载项----COM加载----勾选POWER PIVOT----确定;②通过自定义功能区进行勾选。

出现POWER PIVOT功能区之后,该区域内有“度量值”按钮,可以进行新建和管理,所有表格的度量值都会在这里体现。当然,度量值的维护还是需要使用DAX函数。

这个界面是否十分熟悉?没错,就是和方法1当中的数据透视表里的度量值建立是同一个界面。点击旁边的“管理”按钮,你不仅会看到不论哪种入口使用DAX函数建立的度量值,还能看到一个所有的数据表,这是一个全新的世界,它还可以建模,使用多张报表联动,这就是它的强大之处。

打开网易新闻 查看更多图片

3、载进入:EXCEL中的DAXSTUDIO工具使用

DAXSTUDIO是一个DAX的查询工具,类似于SQL的一个第三方查询和调试工具,在编写复杂的DAX函数时可以用来测试公式、调试函数、输出结果,给数据分析者提供了很大的便利。使用方法是下载一个这个工具,加载进EXCEL表就可以了,也可以不加载单独打开。打开之后它会自动识别目前你在操作的POWER BI数据模型或者是EXCEL数据模型,然后就可以通过编写DAX函数形成度量值,或者是直接输出查询结果了,非常方便。


DAXSTUDIO工具

DAXSTUDIO工具

至此,三种在EXCEL中使用DAX函数的场景就介绍完了。由于没有给出实际应用的例子,看完之后,给人感觉有点懵,接下来给大家展示一个简单的例子,看一下DAX函数编写的度量值结合了POWER PIVOT之后,到底和数据透视表有什么不一样的地方?


实际应用示例

该例子中,放入值区域的字段名:员工,是一个度量值,其DAX函数为:=CONCATENATEX(VALUES('表6'[业务员]),'表6'[业务员],",")。

从结果中可以看出几个有意思的地方:1、数据透视表的值区域,可以不是数值,也可以是文字(图中很容易就显示出:每个城市每种产品对应的销售人员);2、数据透视表生成之后,它可以钻取到不同的维度。

这些都是新鲜的点,在特定的时候,它可以帮你得到非同凡响的呈现效果。利用POWER PIVOT,可以做成和POWER BI类似的呈现效果,毕竟核心功能:度量值和DAX函数已经在了,剩下的只是显示问题。

最后理一下学习DAX函数的学习思路,初步接触DAX函数,你会觉得它和EXCEL的常规函数有点像,很多函数名也一致,但是经过了解之后,就会发现,它不是一个简单的函数,它需要考虑表和筛选,也就是行上下文和筛选上下文。这是学习DAX函数的一个主要拦路虎,一定要跨越它,如果这个理解了,那么剩下的学习难度就剩下一个:嵌套DAX函数形成自己想要的度量值。嵌套的学习和EXCEL函数的学习可以使用相同的学习思路:先易后难,中间查看,最后成型。

DAX函数的学习需要付出一定的时间,它是自成体系的一种函数知识。学习任何知识都要想着两件事:学习的艰辛和学成后的阳光。“会当凌绝顶,一览众山小。”要想看山顶的风景,没有别的办法,只有一步一步地走上去。