DAX语言是专门为PowerPivot、Power BI以及SSAS Tabular模型设计的一门功能强大的数据分析表达式语言。初学者可以通过阅读相关的书籍和材料,例如“Introduction to DAX”,开始学习和掌握DAX。DAX在很多方面与Excel相似,但也有本质的不同。DAX没有“行”和“列”的概念,它基于不同的类型系统,并引入了许多新的函数。它设计用于数据模型和商业计算,是Power Pivot在2010年首次推出的。 DAX是一种函数式语言,程序的执行是通过函数调用链进行的。例如,在DAX中创建一个公式: =SUMX(FILTER(VALUES('Date'[Year]), 'Date'[Year]=2000, [SalesAmount]*100, [SalesAmount]*90))需要注意的是,DAX公式若未经格式化,将无法正确执行。因此,DAX中的代码格式化是非常重要的。一些DAX公式编写工具,如***,可以辅助用户生成格式规范的DAX代码。在DAX中,计算列(Calculated Columns)是使用DAX计算并存储在表中的列,它们总是为当前行计算。例如,一个名为Product[Price]的表达式指代的是:Price列的值(显式指定)、在Product表中(显式或可选的)、针对当前行(隐式指定的)、每行一个不同的值。而度量值(Measures)是使用DAX编写的,但它们不会按行逐个计算。相反,它们使用表格和聚合函数。度量值没有“当前行”的概念。例如,销售毛利(Gross Margin)可以是计算列,但也可以是度量值;而销售毛利百分比(Gross Margin%)则必须是一个度量值。在命名约定方面,度量值不属于任何特定的表,因此应该避免使用表名。例如,应该使用[Margin%]而不是Sales[Margin%]。这样不仅便于将度量值移动到另一个表,也有助于识别度量值。所以,计算列通常表示为“表[列]”,而度量值表示为“[度量值]”。在比较度量值与计算列时,当需要按值进行切片或过滤时使用计算列;当需要计算百分比、比率或进行复杂聚合时,使用度量值。这主要是由于度量值和计算列在空间和CPU使用上的不同表现。在学习DAX时,应当了解其基本数据类型,例如数值、布尔值、字符串、日期、时间以及表类型和行类型等。DAX还提供了一系列的聚合函数,如SUM、AVERAGE、MIN、MAX等。