列和度量值引用

作为数据建模者,您的 DAX 表达式将引用模型字段和指标。 列和度量值始终与模型表相关联,但这些关联不同,因此我们对如何在表达式中引用它们有不同的建议。

列是表级对象,列名在表中必须唯一。 因此,可以在模型中多次使用同一列名称,前提是它们属于不同的表。 还有一条规则:列名不能与同一表中存在的度量值名称或层次结构名称同名。

通常,DAX 不会强制使用对列的完全限定引用。 完全限定的引用表示表名称在列名称之前。

下面是仅使用列名称引用的一个计算列定义示例。 “销售额”和“成本”列都属于名为“订单”的表。

Profit = [Sales] - [Cost]

可以使用完全限定的列引用重写同一定义。

Profit = Orders[Sales] - Orders[Cost]

但有时,当 Power BI 检测到歧义时,将要求使用完全限定的列引用。 输入公式时,红色的波浪和错误消息会发出警报。 此外,某些 DAX 函数(如 LOOKUPVALUEDAX 函数)需要使用完全限定的列。

建议始终完全限定列引用。 建议 部分中提供了原因。

措施

度量值是模型级对象。 因此,度量值名称在模型中必须是唯一的。 但是,在 字段 窗格中,报表作者将看到与单个模型表关联的每个度量值。 此关联是出于外观原因设置的,可以通过为度量值设置 Home Table 属性来对其进行配置。 有关详细信息,请参阅 Power BI Desktop 中的度量值(组织度量值)

可以在表达式中使用完全限定的度量值。 DAX IntelliSense 甚至会提供建议。 但是,这不是必要的,这不是建议的做法。 如果更改了度量值的主表,则使用完全限定的度量值引用的任何表达式都将中断。 然后需要对每个中断的公式进行编辑,以删除(或更新)度量值引用。

建议不要限定度量值引用。 建议 部分中提供了原因。

建议

我们的建议简单易记:

  • 始终使用完全限定的列引用
  • 一定不要使用完全限定的度量值引用

原因如下:

  • 公式条目:将接受表达式,因为不会有任何不明确的引用可以解析。 此外,你还将满足需要完全限定的列引用的 DAX 函数的要求。
  • 可靠度:即使更改了度量值主表属性,表达式仍将继续工作。
  • 可读性:表达式是快速的且易于理解,你将根据是否为完全限定来快速确定它是列还是度量值。