DAX 是一种公式语言(其全称为
简而言之,DAX 是用于数据透视表的公式。大多数 DAX 函数与普通的 Excel 函数相比具有相似的名称和特性,但只能在 PowerPivot 中使用。众所周知,常规 数据透视表 可以包含计算字段(DAX 中
总的来说,DAX 并不是一门复杂的语言,正如乍看之下那样,只需要理解其工作原理。Excel 公式与 DAX 公式之间的区别在于,在 Excel 中,我们操作单个单元格和区域,而在 DAX 中,我们只能引用整个表及其列。
要开始使用 DAX 代码,我们需要 安装 PowerPivot 用于 Excel 2010 或切换到 Excel 2013 中的同名选项卡。
与 Excel 中一样,DAX 函数属于特定类别,即:
在 PowerPivot 中,用户可以创建两种类型的计算字段:
相同的公式可能会表现出不同的行为,取决于它们是用于 计算列 还是 度量值。如果公式用于 计算列,它将应用于整个表中列的每一行。值可能取决于行上下文。在 度量值 中,计算结果更加依赖于上下文。这意味着数据透视表的结构以及行和列标题的选择会影响计算中使用的值。
也就是说,换句话说,当我们创建 数据透视表 时,则:
DAX 语言中也存在上下文这一概念,这对于理解公式的功能非常重要。PowerPivot 中的公式可能会受到数据透视表中应用的筛选器、表之间的关系以及公式中存在的筛选器的影响。上下文允许执行动态分析。在构建和排除公式故障时,理解上下文的用途非常重要。
因此,在 DAX 中存在三种类型的上下文:筛选上下文、行上下文 和 查询上下文。
筛选上下文 是值的集合,在每一列中允许的,取决于筛选器限制,这些限制应用于行或在公式中由筛选器条件定义。
行上下文 实际上对应于当前行的概念。如果创建了计算列,那么行上下文就是每个单独行中的值以及与当前行关联的列中的值。
查询上下文 指的是数据的子集,这些数据子集是为数据透视表的每个单元格隐式创建的,取决于数据透视表中的行和列标题(数据透视表布局结构)。