了解行上下文

已完成

现在,您已经创建了计算列,接下来学习如何计算它们的公式。

计算列的公式是针对每一个表行计算的。 此外,它是在行上下文中进行计算的,即当前行。 考虑截止会计年度计算列定义:

Due Fiscal Year =
"FY"
    & YEAR('Due Date'[Due Date])
        + IF(
            MONTH('Due Date'[Due Date]) <= 6,
            1
        )

为每一行计算公式时,'Due Date'[Due Date] 列引用会返回该行 的列值。 您可能通过在 Excel 表中使用公式而熟悉本概念。

但是,行上下文不会延伸到表之外。 如果您的公式需要引用其他表中的列,您有两个选项:

  • 如果这些表直接或间接相关,则可以使用 RELATEDRELATEDTABLE DAX 函数。 RELATED 函数检索关系一侧的值,而 RELATEDTABLE 检索多侧的值。 RELATEDTABLE 函数可返回表对象。
  • 当表不相关时,您可以使用 LOOKUPVALUE DAX 函数。

通常,尽可能尝试使用 RELATED 函数。 由于关系和列数据的存储和索引方式不同,该函数的性能通常优于 LOOKUPVALUE 函数。

现在,将以下计算列定义添加到 Sales 表中:

Discount Amount =
(
    Sales[Order Quantity]
        * RELATED('Product'[List Price])
) - Sales[Sales Amount]

计算列定义将 Discount Amount 列添加到 Sales 表中。 Power BI 计算 Sales 表中每行的计算列公式。 Order QuantitySales Amount 列的值是在行上下文中检索的。 但是,由于 List Price 列属于 Product 表,需要 RELATED 函数来检索销售产品 的定价值。

当对计算列公式进行计算时,使用行上下文。 当使用一类函数(称为迭代器函数)时,也会使用行上下文。 使用迭代器函数可以灵活地创建复杂的汇总。 迭代器函数将在后面的模块中介绍。