DAX 概念

2019-08-06 17:45:09 浏览数 (1)

DAX 概念

授之以鱼不如授之以渔,有关DAX的概念性介绍我特意地拖到这个章节统一来讲,以免在前面穿插让大家混淆。DAX是Data Analysis Expression的缩写,即数据分析表达式,DAX公式同Excel一样,公式繁多可以编汇成一部字典,我们不可能一夜之间把这本字典背下来,在这种情况下教会大家原理和学会查字典的方法尤为重要。

如果掌握了原理和二十几个常用函数,完全可以应对80%以上的分析需求,对于剩下的20%我们可以按需去资料库里面搜索公式和方法。这就是本节和下一章节《DAX公式》的学习目标。我们现在把数据类型、运算符、命名规则、函数、上下文、查字典、输入,在这一个章节中一气呵成地说完。

1

数据类型

与PQ中的数据类型类似,PP也提供了数据的修改功能,并且还能细化分类和摘要,尤其在识别地理位置来绘制地图时非常的有用。当电脑未能自动识别类型时,将会默认为文本类型。

这个数据类型是运用DAX的基础,当出现问题时,第一时间去检查你的数据类型。

2

运算符

如下表,DAX的运算符与Excel是基本一样的,差别在于增添了,&&相当于AND函数,||相当于OR函数,在实践操作中运用逻辑运算符比函数要方便得多。

3

命名规则

在数据模型中,有几个关键词,表、列、和度量值,它们都有自己固定的命名规则。我们以咖啡数据为例子来看,记住这个规则非常重要,因为我们所有的公式都是按照它来完成的。

当度量值公式引用列名称时,一定要带上表的名称,而引用其他度量值时不需要带表名称。按照这个原则,你会很容易分辨度量值与列来避免混淆。(例外:当你在写计算列公式时可以省略表名称,因为极少的情况你会在计算列中引用度量值)

4

函数

度量值的工作原理是筛选和计算,用于计算的函数与Excel很相似,还有很多是共用的函数,用法完全一致。而主要的区别在于Excel可以引用单个单元格或行列,PP只能引用完整的数据表或数据列,这个时候筛选函数体现了它的价值,再配合聚合、时间智能、迭代等函数,你对如数据会如庖丁解牛一样,游刃有余。

我们在Chapter4中会按照下面的目录学完这二十几个最常用的函数,掌握了他们,再配合一些实战练习,你完全可以胜任市面上至少80%以上的分析需求。

5

认识“上下文”

这不是一个新的概念!我们前面介绍的计算列和度量值都是在上下文中完成的计算。“上下文”这个术语经常迷惑我们非IT类的学习者,然而在所有的DAX书籍中你都不可避免地读到它,所以我不得不把它提出来做一个知识性的归纳。你可以把“上下文”理解成“环境”,在设定的环境下执行计算。DAX中有两种上下文,筛选上下文和行上下文。

上面的表中,2016年11月份拿铁小杯的销售量为1096,这个销售量度量值在计算它时的环境就是筛选上下文,环境是什么,即'咖啡数表'中[日期]=2016年11月,[咖啡种类]=拿铁,[杯型]=小 的数据表。

对应的,行上下文引用一般出现在计算列,利润列中的19.8的计算环境是当前所在行,即他的行上下文。

一般情况,筛选上下文只出现在度量值,行上下文只出现在计算列,当然也有特殊情况,比如可以用迭代函数SUMX,EARLIER等在度量值中引用行上下文,这个在下一章节具体函数讲解中再来说明。

6

查字典

如果需要学习某一个特定函数怎么办?百度“DAX语法”,进入微软的官方中文DAX网页,在函数中你会找到每一个函数的解释以及小例子。不过由于是官方直译过来的解释,易学性较低,这也是我为什么要专写一章《DAX公式》的原因。

7

输入

注意DAX语句中的标点符号要完全用英文格式,这点与Excel一样,尤其在我们中英文穿插使用的时候经常会不小心的犯错。在输入方面,这里有个PowerBI相比Excel的小优点,DAX公式栏不仅沿用了Excel语法提示的功能,而且用颜色和光标凸显出公式、度量值、括号等,帮助我们更好地把公式写完整。

如果你是一个完美主义者,可通过空格和Shift Enter在语句中留出间隔,使语句优美易读。下面就是一个标准书写的例子,可以看到DAX公式的函数之间是可以随意留白空格的。

重要的备注:至此,我们的对数据建模概念性的讲解告一段落。Chapter3的知识非常偏概念化,如果你有一些地方还是云里雾里并不是很明白,完全可以先放下,结合下一章节的实践操作回头来看概念就豁然开朗了。

感谢您关注公众号PowerBI大师

0 人点赞