Excel DAX - 命名要求

数据模型由表组成,表之间存在关系。 它是 Power Pivot 的数据库。 每个表都存储在数据模型中的单独选项卡上,表名作为选项卡名称给出。 每个表都有列,代表数据字段。 列名称将显示为数据透视表字段列表中的数据字段。

  • 数据模型中的表必须具有唯一的名称。

  • 表名不区分大小写。 即结果、结果、结果——所有这些都代表同一个表。

  • 您添加到数据模型的每个计算列和计算字段都必须与特定表相关联。

    • 当您创建计算列时,您将在一个表中执行此操作,从而将其与该表隐式关联。

    • 创建计算字段时,您将创建它 - 在 Power Pivot 窗口的表中创建 - 或者从 Excel 窗口指定应存储计算字段定义的表的名称。

在这两种情况下,计算字段都称为显式计算字段并与表相关联。

跨表的 DAX 命名要求

  • 如果列来自与当前表不同的表,则需要在 DAX 公式中指定表名。

  • 如果表名包含空格、其他特殊字符或任何非英语字母数字字符,则必须用单引号引起来。

DAX 命名要求 – 计算字段

  • 计算字段的名称必须始终在括号中。

  • 计算字段的名称可以包含空格。

  • 每个计算字段名称在数据模型中必须是唯一的。 表名称在计算字段名称前面是可选的,因为它始终与特定表相关联。

DAX 命名要求 – 列

  • 列名在表中必须是唯一的。 但是,不同的表可以有同名的列。

  • 如果没有名称冲突,可以使用非限定的列名引用这些列。 非限定列名只是列名,用方括号括起来。 例如 [Medal]。 当您从当前表的同一行引用标量值时,您可以使用非限定列名。

  • 但是,如果在多个表中使用相同的列名,则必须使用完全限定的列名来引用该列。 完全限定的列名是表名,后跟方括号中的列名。 例如 Results[Medal]

  • 当您使用列作为 DAX 函数的输入时,最好完全限定列名称。 以下 DAX 函数要求列名完全限定 −

    • VALUES。

    • ALL 和 ALLEXCEPT。

    • CALCULATE 和 CALCULATETABLE - 在过滤器参数中。

    • 相关表。

    • DAX 时间智能函数。

DAX 命名要求 – 保留关键字

如果您用于表的名称与 Analysis Services 保留关键字相同,则会引发错误并且您必须重命名该表。 但是,如果对象名称用方括号(对于列)或引号(对于表)括起来,则可以在对象名称中使用关键字。

引号可以用几个不同的字符表示,这取决于所使用的应用程序。 因此,如果您从外部文档或网页粘贴公式,请务必检查用于打开和关闭引号的字符的 ASCII 代码,以确保它们相同。 否则,DAX 可能无法将符号识别为引号,从而导致引用无效。


DAX 完全限定名称 - 特殊情况

如果表名包含空格或保留关键字或不允许使用的字符,则必须将表名括在单引号内。 例如 "East_Sales"[Amount]。

如果名称包含 ANSI 字母数字字符范围之外的任何字符,则必须将表名称括在引号中,无论您的语言环境是否支持该字符集。 例如,如果表名是用西里尔字符编写的,例如"Таблица",即使表名不包含空格,也必须用引号引起来。

您可以使用公式自动完成功能,因为这只是从下拉列表中选择列的完全限定名称的问题,使您的工作更轻松且不会出错。


排除名称中的特殊字符

以下字符和字符类型在表、列或计算字段的名称中无效 −

前导或尾随空格,除非空格被名称定界符、方括号或单引号括起来。 控制字符。

以下字符在 Power Pivot 对象的名称中无效 −

.,;':/\*|?&%$!+=()[]{}<>


通用 DAX 公式规则

DAX 公式语法取决于它可以执行的操作类型,如果它包含 DAX 函数,则差异很大。 以下规则适用于所有 DAX 公式 −

  • DAX 公式不能修改或插入表中的单个值。

  • 您不能使用 DAX 创建计算行。 您只能创建计算列和计算字段。

  • 定义计算列时,您可以将函数嵌套到任意层级(最多 64 层,这有点太多了)。

  • DAX 有几个返回表的函数。 通常,您使用这些 DAX 函数返回的值作为其他 DAX 函数的输入,这些函数需要一个表作为输入。

❮ Excel DAX 语法