Dax Functions 简明教程

DAX Functions - Quick Guide

DAX Functions - Introduction

DAX 的全称是 *D*ata *A*nalysis E*x*pressions(数据分析表达式)。DAX 是一种公式语言,是一个用于公式或表达式中的函数、运算符和常量的集合,可以计算并返回一个或多个值。DAX 是与 Microsoft Excel Power Pivot 的数据模型以及 Microsoft Power BI 相关联的公式语言。

DAX 不是一种编程语言,而是一种公式语言,它允许用户在计算列和计算字段(也称为度量)中定义自定义计算。借助 DAX,你可以使用数据模型中现有数据创建新的信息。DAX 公式使你可以执行数据建模、数据分析,并使用结果进行报告和决策。

有关 DAX 的深入理解,请参阅本教程库中有关 DAX 的教程。

What is a DAX Function?

DAX 函数是一种内置函数,它在 DAX 语言中提供,使你可以对数据模型中表格中的数据执行各个操作。

DAX 函数使你可以对数据模型执行常用的数据计算。某些 DAX 函数的名称及其功能与 Excel 函数的相同,但已修改为使用 DAX 数据类型并与表格和列一起使用,如下节中所突出显示的那样。DAX 附加了一些旨在与关系数据一起使用并执行动态聚合的函数。

DAX 函数在使用 DAX 进行数据建模和报告中发挥着重要作用。

Excel Functions vs. DAX Functions

Excel 函数与 DAX 函数之间存在某些相似之处,但也存在某些差异。以下是 Excel 函数和 DAX 函数之间的相似之处和差异 -

Similarities Between Excel Functions and DAX Functions

  1. 某些 DAX 函数的名称和通用行为与 Excel 函数相同。

  2. DAX 具有类似于 Excel 中数组和矢量查找函数的查找函数。

Differences Between Excel Functions and DAX Functions

  1. 已修改 DAX 函数以获取不同类型的输入,而某些 DAX 函数可能会返回不同的数据类型。因此,您需要分别了解这些函数的使用方法,尽管它们名称相同。

  2. 您不能在 Excel 公式中使用 DAX 函数,或在 DAX 公式中使用 Excel 函数,而无需进行必要的修改。

  3. Excel 函数将单元格引用或一组单元格作为引用。DAX 函数从不将单元格引用或一组单元格作为引用,而是将一列或一个表作为引用。

  4. Excel 日期和时间函数返回一个整数,表示一个日期作为一个序列号。DAX 日期和时间函数返回一个在 DAX 中但不在 Excel 中的数据类型 datetime。

  5. Excel 没有返回表格的函数,但某些函数可以处理数组。许多 DAX 函数都可以轻松引用完整的表格和列来执行计算并返回一个表格或一列值。DAX 的这种能力为 Power Pivot、Power View 和使用 DAX 的 Power BI 增加了功能。

  6. DAX 查找函数要求在各个表之间建立关系。

DAX Parameter Naming Conventions

DAX 拥有标准的参数名称来帮助使用和理解 DAX 函数。此外,您可以在参数名前使用特定前缀。如果前缀清晰易懂,您可以使用前缀本身作为参数名。

您需要了解 DAX 参数的命名约定,以便了解 DAX 函数的语法并正确使用所需参数的值。

有关详细信息,请参阅第 {} 章。

Types of DAX Functions

DAX 支持以下类型的函数。

  1. DAX 表值函数 DAX 筛选器函数 DAX 聚合函数 DAX 时间智能函数

  2. DAX 日期和时间函数

  3. DAX Information Functions

  4. DAX Logical Functions

  5. DAX 数学和三角函数

  6. DAX Other Functions

  7. DAX 父子函数

  8. DAX Statistical Functions

  9. DAX Text Functions

  10. DAX Description Structure Functions

DAX Table-Valued Functions

许多 DAX 函数将表格作为输入或输出表格,或者同时进行。这些 DAX 函数称为 DAX 表值函数。由于表格可以只有一列,因此 DAX 表值函数也接受单列作为输入。您有以下类型的 DAX 表值函数 -

  1. DAX Aggregation functions

  2. DAX Filter functions

  3. DAX Time intelligence functions

DAX Aggregation Functions

DAX 聚合函数汇总表各行中的任何表达式,并且在计算中很有用。

有关详细信息,请参阅第 {} 章。

DAX Filter Functions

DAX 筛选器函数返回列或表格或与当前行相关的值。您可以使用 DAX 筛选器函数返回特定的数据类型,查找相关表格中的值,并按相关值进行筛选。DAX 查找函数通过使用表格和它们之间的关系来工作。DAX 筛选器函数使您能够操作数据上下文以创建动态计算。

有关详细信息,请参阅第 {} 章。

DAX Time Intelligence Functions

DAX 时间智能函数返回一个包含日期的表格,或使用一个日期表格计算聚合结果。这些 DAX 函数可帮助您创建计算结果,满足商业智能分析需求,让您使用时间段(包括天、月、季度和年)操作数据。

有关详细信息,请参阅章节 DAX Time Intelligence functions

DAX Date and Time Functions

DAX 日期和时间函数与 Excel 日期和时间函数类似。但是,DAX 日期和时间函数基于 DAX 的 datetime 数据类型。

有关详细信息,请参阅章节 DAX Date and Time functions

DAX Information Functions

DAX 信息函数查看以参数形式提供的单元格或行,并告知您该值是否与预期类型匹配。

有关详细信息,请参阅章节 DAX Information functions

DAX Logical Functions

DAX 逻辑函数返回表达式中值的信息。例如,DAX TRUE 函数让您知道正在计算的表达式是否返回 TRUE 值。

有关详细信息,请参阅章节 DAX Logical functions

DAX Math and Trig Functions

DAX 数学和三角函数与 Excel 的数学和三角函数非常相似。

有关详细信息,请参阅章节 DAX Math and Trig functions

DAX Parent and Child Functions

DAX 父子函数用于管理以数据模型中父子层次结构呈现的数据。

有关详细信息,请参阅章节 DAX Parent and Child functions

DAX Statistical Functions

DAX 统计函数与 Excel 统计函数非常相似。

有关详细信息,请参阅章节 DAX Statistical functions

DAX Text Functions

DAX 文本函数处理表格和列。使用 DAX 文本函数,您可以返回字符串的一部分,在字符串中搜索文本,或连接字符串值。您还可以控制日期、时间和数字的格式。

有关详细信息,请参阅章节 DAX Text functions

DAX Other Functions

这些 DAX 函数执行的独特操作无法由其他大多数函数所属的任何类别定义。

有关详细信息,请参阅章节 DAX Other functions

DAX Function Description Structure

如果您需要在 DAX 公式中使用 DAX 函数,那么您需要详细地了解该函数。您应当了解该函数的语法、参数类型、该函数返回的内容,等等。

本教程为所有 DAX 函数采用统一的函数描述结构,以便您能有效阅读和理解 DAX 函数。

请参阅章节 − DAX Function Description Structure 了解详细信息。

DAX Parameter Naming Conventions

DAX 拥有标准的参数名称来帮助使用和理解 DAX 函数。此外,您可以在参数名前使用特定前缀。如果前缀清晰易懂,您可以使用前缀本身作为参数名。

在理解 DAX 函数的语法并正确使用数据值来获取相关的 DAX 函数参数之前,您需要理解 DAX 参数的命名规则。

Parameter Names

以下为 DAX 的标准参数名称:

Sr.No.

Parameter Name & Description

1

expression 返回单个标量值的任何 DAX 表达式,其中这个表达式将被评估多次(针对每一行/语境)。

2

value 返回单个标量值的任何 DAX 表达式,其中这个表达式将在所有其他操作之前准确评估一次。

3

table 返回数据表格的任何 DAX 表达式。

4

tableName 使用标准 DAX 语法存在的表名。它不能是一个表达式。

5

columnName 使用标准 DAX 语法存在的列名,通常为完全限定。它不能是一个表达式。

6

name 将用于提供新对象名称的字符串常量。

7

order 用于确定排序顺序的枚举。

8

ties 用于处理相同值的情况的枚举。

9

type 用于确定 PathItem 和 PathItemReverse 的数据类型的枚举。

Prefixing Parameter Names or Using the Prefix Only

您可以用前缀来限定参数名称:

  1. 前缀应描述如何使用参数。

  2. 应这样设置前缀,以避免参数的模棱两可。

例如,

  1. Result_ColumnName − 指向用于获取 DAX LOOKUPVALUE () 函数中的结果值的现有列。

  2. Search_ColumnName − 指向用于在 DAX LOOKUPVALUE () 函数中搜索值的现有列。

如果前缀足够明确地描述参数,你就可以省略参数名称而仅使用前缀。有时,省略参数名称且仅使用前缀有助于避免在阅读期间产生杂乱。

例如,考虑 DATE (Year_value, Month_value, Day_value) 。你可以省略参数名称 - value(重复三次),并将其写为 DATE (Year, Month, Day)。正如所见,仅通过使用前缀,函数就更具可读性。但是,有时为了更清楚地理解,参数名称和前缀必须同时存在。

例如,考虑 Year_columnName 。参数名称是 ColumnName,前缀是 Year。两者同时存在是为了让用户理解此参数需要现有年份列的引用。

DAX Functions - Description Structure

如果您需要在 DAX 公式中使用 DAX 函数,那么您需要详细地了解该函数。您应当了解该函数的语法、参数类型、该函数返回的内容,等等。

为方便您理解如何阅读和解释 DAX 函数,本教程采用了统一的函数描述结构。

  1. 不同类型的 DAX 函数按 DAX 函数的类型名称分章分组。

  2. 每章提供相关类型 DAX 函数实用程序的简要描述。

  3. 简要描述之后是与该章节(DAX 函数的类型/类别)对应的 DAX 函数列表。

  4. 每个 DAX 函数名称都超链接到 DAX 函数详细信息,其中包含以下 DAX 函数描述结构 - 说明语法参数返回值备注示例

以下部分说明每个 DAX 函数说明中出现的各个标题。

Description

在说明部分,您将学习 DAX 函数是什么以及它可以在哪里使用。

如果 DAX 函数是在 Excel 2016 中引入的,这里也会提到。(其他 DAX 函数存在于 Excel 2013 中。)

Syntax

在语法部分,你将了解确切的功能名称和相关参数。

  1. DAX 函数名称以大写字母给出。

  2. DAX 函数名称后面跟开括号。

  3. 每个参数都遵循标准的 DAX 参数命名约定,并用尖括号括起来。

  4. 如果参数是可选的,则进一步用方括号括起来。

  5. 参数以逗号分隔。

  6. 省略号 …​ 用于显示可重复次数的参数。

  7. 函数语法以闭合的括号结束。

Example

syntax

Parameters

在“参数”段中,特定 DAX 函数的每个参数在具有其说明的表中列出。例如,上述示例 DAX 函数 SELECTCOLUMNS 的参数列在下面的表中。

Sr.No.

Parameter & Description

1

Table 表或返回表的 DAX 表达式。

2

Name 指定给列的名称,并用双引号引起来。

3

scalar_expression 返回标量值的 DAX 表达式,例如列引用、整数或字符串值。

Return Value

在“返回值”部分,您将了解 DAX 函数将返回什么值及其数据类型。

Remarks

在“备注”部分,您将了解有关 DAX 函数用法的任何额外信息。您还将了解潜在错误及原因。

Example

本部分提供了 DAX 函数用法示例。

Note − 当您编写具有参数数据值的 DAX 函数时,您将按照以下给出的命名约定 −

  1. 表名指定为它在数据模型中出现的形式。例如,销售额。

  2. 列名指定为它在数据模型中出现的形式,用方括号将其括起来。例如,[销售额] 建议为列使用限定名称,即列名称以包含它的表名为前缀。例如,销售额[销售额]如果表名包含空格,则应将其用单引号括起来。例如,‘东部销售额’[销售额]

  3. DAX 函数可以返回列或值表,在这种情况下,需要将它用作另一个需要列或表的 DAX 函数的参数。

DAX Functions - Filter

DAX Functions - Logical

DAX 逻辑函数根据对相关参数执行的逻辑运算返回逻辑值 (TRUE/FALSE)。

以下是 DAX 逻辑函数 -

DAX Functions - Parent and Child

DAX 父子函数用于管理以数据模型中父子层次结构呈现的数据。

以下是 DAX 父项和子项函数 −

DAX Functions - Text

DAX 文本函数与表和列一起使用。使用 DAX 文本函数,你可以返回部分字符串,搜索字符串中的文本或连接字符串值。还可以控制日期、时间和数字的格式。

以下是 DAX 文本函数 -

DAX Functions - Other

这些 DAX 函数执行无法由属于大多数其他 DAX 函数的任何类别定义的唯一操作。

以下是 DAX 其他函数 -