Excel DAX - 命名要求



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

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

  • 表名不区分大小写。例如,Results、RESULTS、results——所有这些都代表同一张表。

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

    • 创建计算列时,您将在表内进行操作,从而将其隐式地与该表关联。

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

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

跨表的DAX命名要求

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

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

DAX命名要求 - 计算字段

  • 计算字段的名称必须始终用括号括起来。

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

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

DAX命名要求 - 列

  • 列名在一个表中必须唯一。但是,不同的表可以使用相同的列名。

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

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

  • 将列用作DAX函数的输入时,最好使用完全限定的列名。以下DAX函数要求列名被完全限定:

    • VALUES。

    • ALL和ALLEXCEPT。

    • CALCULATE和CALCULATETABLE - 在筛选器参数中。

    • RELATEDTABLE。

    • 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_syntax.htm
广告