DAX 函数 - 快速指南


DAX 函数 - 简介

DAX代表数据分析表达式。_ DAX 是一种公式语言,是函数、运算符和常量的集合,可在公式或表达式中使用它们来计算并返回一个或多个值。DAX 是与 Microsoft Excel Power Pivot 的数据模型和 Microsoft Power BI 关联的公式语言。

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

要深入了解 DAX,请参阅本教程库中的教程 - DAX。

什么是 DAX 函数?

DAX 函数是 DAX 语言中提供的内置函数,使您能够对数据模型中的表中的数据执行各种操作。

DAX 函数使您能够在数据模型上执行常用的数据计算。某些 DAX 函数具有与 Excel 函数相同的名称和功能,但已被修改为使用 DAX 数据类型并可处理表和列,如下一节中重点介绍的那样。DAX 具有旨在处理关系数据并执行动态聚合的附加函数。

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

Excel 函数与 DAX 函数

Excel函数和DAX函数之间有一定的相似之处,也有一定的差异。以下是 Excel 函数和 DAX 函数之间的异同 -

Excel 函数和 DAX 函数之间的相似之处

  • 某些 DAX 函数与 Excel 函数具有相同的名称和相同的一般Behave。

  • DAX 具有与 Excel 中的数组和向量查找函数类似的查找函数。

Excel 函数和 DAX 函数之间的差异

  • DAX 函数已修改为接受不同类型的输入,并且某些 DAX 函数可能返回不同的数据类型。因此,尽管这些函数具有相同的名称,但您需要分别了解它们的用法。

  • 如果没有进行必要的修改,则无法在 Excel 公式中使用 DAX 函数或在 DAX 公式中使用 Excel 函数。

  • Excel 函数采用单元格引用或单元格区域作为引用。DAX 函数从不将单元格引用或单元格区域作为引用,而是将列或表作为引用。

  • Excel 日期和时间函数返回一个整数,该整数将日期表示为序列号。DAX 日期和时间函数返回 DAX 中但 Excel 中不存在的日期时间数据类型。

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

  • DAX 查找功能要求在各个表之间建立关系。

DAX 参数命名约定

DAX具有标准参数名称,以方便使用和理解DAX函数。此外,您可以对参数名称使用某些前缀。如果前缀足够清晰,可以使用前缀本身作为参数名称。

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

有关详细信息,请参阅章节 - DAX 参数命名约定。

DAX 函数的类型

DAX 支持以下类型的函数。

  • DAX 表值函数
    • DAX 过滤器函数
    • DAX 聚合函数
    • DAX 时间智能函数
  • DAX 日期和时间函数
  • DAX 信息功能
  • DAX 逻辑函数
  • DAX 数学和三角函数
  • DAX其他功能
  • DAX 父函数和子函数
  • DAX 统计函数
  • DAX 文本函数
  • DAX 描述 结构 函数

DAX 表值函数

许多 DAX 函数将表作为输入或输出表,或两者兼而有之。这些 DAX 函数称为 DAX 表值函数。由于表可以具有单个列,因此 DAX 表值函数也将单个列作为输入。您有以下类型的 DAX 表值函数 -

  • DAX 聚合函数
  • DAX 过滤器函数
  • DAX 时间智能功能

DAX 聚合函数

DAX 聚合函数聚合表行上的任何表达式,并且在计算中非常有用。

有关详细信息,请参阅章节 - DAX 聚合函数

DAX 过滤器函数

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

有关详细信息,请参阅章节 - DAX 过滤器函数

DAX 时间智能函数

DAX 时间智能函数返回日期表或使用日期表来计算聚合。这些 DAX 函数使您能够使用时间段(包括日、月、季度和年)操作数据,从而帮助您创建支持商业智能分析需求的计算。

有关详细信息,请参阅章节 - DAX 时间智能功能。

DAX 日期和时间函数

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

有关详细信息,请参阅章节 - DAX 日期和时间函数

DAX 信息功能

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

有关详细信息,请参阅章节 - DAX 信息函数。

DAX 逻辑函数

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

有关详细信息,请参阅章节 - DAX 逻辑函数

DAX 数学和三角函数

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

有关详细信息,请参阅章节 - DAX 数学和三角函数

DAX 父函数和子函数

DAX 父函数和子函数可用于管理在数据模型中作为父/子层次结构呈现的数据。

有关详细信息,请参阅章节 - DAX 父函数和子函数

DAX 统计函数

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

有关详细信息,请参阅章节 - DAX 统计函数

DAX 文本函数

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

有关详细信息,请参阅章节 - DAX 文本函数

DAX其他功能

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

有关详细信息,请参阅章节 - DAX 其他函数

DAX 函数描述结构

如果必须在 DAX 公式中使用 DAX 函数,则需要详细了解该函数。你应该知道函数的语法、参数类型、函数返回什么等。

在本教程中,所有 DAX 函数都使用通用的函数描述结构,以便您可以有效地阅读和解释 DAX 函数。

有关详细信息,请参阅章节 - DAX 函数描述结构

DAX 参数命名约定

DAX具有标准参数名称,以方便使用和理解DAX函数。此外,您可以对参数名称使用某些前缀。如果前缀足够清晰,可以使用前缀本身作为参数名称。

要了解 DAX 函数的语法并为相关 DAX 函数参数正确使用数据值,您需要了解 DAX 参数命名约定。

参数名称

以下是 DAX 标准参数名称 -

先生。 参数名称及说明
1

表达

返回单个标量值的任何 DAX 表达式,其中该表达式将被计算多次(针对每行/上下文)。

2

价值

任何返回单个标量值的 DAX 表达式,其中该表达式在所有其他操作之前仅计算一次。

3

桌子

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

4

表名

使用标准 DAX 语法的现有表的名称。它不能是一个表达式。

5

列名

使用标准 DAX 语法的现有列的​​名称,通常是完全限定的。它不能是一个表达式。

6

姓名

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

7

命令

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

8

领带

用于确定绑定值的处理的枚举。

9

类型

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

为参数名称添加前缀或仅使用前缀

您可以使用前缀限定参数名称 -

  • 前缀应该描述如何使用参数。

  • 前缀的使用方式应避免参数的歧义读取。

例如,

  • Result_ColumnName - 指用于获取 DAX LOOKUPVALUE () 函数中的结果值的现有列。

  • Search_ColumnName - 指用于在 DAX LOOKUPVALUE () 函数中搜索值的现有列。

如果前缀足以清楚地描述参数,则可以省略参数名称并仅使用前缀。省略参数名称并仅使用前缀有时可以帮助避免读取过程中的混乱。

例如,考虑DATE (Year_value, Month_value, Day_value)。可以省略重复三次的参数名-值,写成DATE(年、月、日)。正如所见,通过仅使用前缀,该函数更具可读性。但是,有时为了清楚起见,必须提供参数名称和前缀。

例如,考虑Year_columnName。参数名称为 ColumnName,前缀为 Year。两者都需要让用户了解该参数需要引用现有的年份列。

DAX 函数 - 描述结构

如果必须在 DAX 公式中使用 DAX 函数,则需要详细了解该函数。你应该知道函数的语法、参数类型、函数返回什么等。

为了使您能够了解如何读取和解释 DAX 函数,本教程使用统一的函数描述结构。

  • 不同类型的 DAX 函数按 DAX 函数的类型名称分组为章节。

  • 每一章都简要描述了相应类型的 DAX 函数的实用程序。

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

  • 每个 DAX 函数名称都超链接到具有以下 DAX 函数描述结构的 DAX 函数详细信息 -

    • 描述
    • 句法
    • 参数
    • 返回值
    • 评论
    • 例子

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

描述

在“描述”部分中,您将了解 DAX 函数的含义及其用途。

如果Excel 2016中引入了DAX函数,这里同样会提到。(其余 DAX 函数存在于 Excel 2013 中。)

句法

在语法部分,您将了解确切的函数名称和相应的参数。

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

  • DAX 函数名称后跟左括号。

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

  • 如果参数是可选的,则将其进一步括在方括号中。

  • 参数之间用逗号分隔。

  • 省略号...用于显示参数的可选重复次数。

  • 函数语法以右括号结束。

例子

句法

参数

在“参数”部分中,特定 DAX 函数的每个参数都列在表格中及其说明。例如,上面示例 DAX 函数 SELECTCOLUMNS 的参数如下表列出。

先生。 参数及说明
1

桌子

表或返回表的 DAX 表达式。

2

姓名

为列指定的名称,用双引号引起来。

3

标量表达式

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

返回值

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

评论

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

例子

本节给出了 DAX 函数的使用示例。

注意- 当您使用参数的数据值编写 DAX 函数时,您将遵循以下给出的命名约定 -

  • 表名称按其在数据模型中显示的方式指定。例如销售。

  • 列名称是按照数据模型中显示的形式指定的,并用方括号将其括起来。

    例如,[销售额]

    • 建议对列使用完全限定名称,即列名以包含该列的表名作为前缀。

      例如,销售额[销售额]

    • 如果表名包含空格,则应将其用单引号括起来。

      例如,“东部销售”[销售额]

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

DAX 函数 - 聚合

DAX 聚合函数聚合表行上的任何表达式,并且在计算中非常有用。

以下是 DAX 聚合函数 -

DAX 函数 - 过滤器

您可以使用 DAX 过滤器函数返回特定数据类型、在相关表中查找值并按相关值进行过滤。查找函数通过使用表及其之间的关系来工作。过滤器函数使您能够操纵数据上下文以创建动态计算。

以下是 DAX 过滤器功能

DAX 函数 - 时间智能

DAX 时间智能功能使您能够使用时间段(包括日、月、季度和年)操作数据,从而帮助您创建支持商业智能分析需求的计算。

以下是 DAX 时间智能功能

DAX 函数 - 日期和时间

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

以下是 DAX 日期和时间函数 -

DAX 函数 - 信息

DAX 信息函数查看作为参数提供的值或列,并告诉您该值是否与预期类型匹配。

以下是 DAX 信息功能 -

DAX 函数 - 逻辑

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

以下是 DAX 逻辑函数 -

数学与三角函数

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

以下是 DAX 数学和三角函数 -

DAX 函数 - 父函数和子函数

DAX 父函数和子函数可用于管理在数据模型中作为父/子层次结构呈现的数据。

以下是 DAX 父函数和子函数 -

DAX 函数 - 统计

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

以下是 DAX 统计函数 -

DAX 函数 - 文本

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

以下是 DAX 文本函数 -

DAX 函数 - 其他

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

以下是 DAX 其他功能 -