TREATAS

适用于:计算列计算表度量值视觉计算

将表表达式的结果作为筛选器应用于不相关的表中的列。

语法

TREATAS(table_expression, <column>[, <column>[, <column>[,…]]]} )

parameters

术语 定义
table_expression 生成表的表达式。
column 一个或多个现有列。 它不能是表达式。

返回值

一个表,其中包含列(s)中的所有行,这些行也位于table_expression中。

备注

  • 指定的列数必须与表表达式中的列数匹配,并且顺序相同。

  • 如果表中表达式中返回的值在列中不存在,则忽略该值。 例如,TREATAS({“Red”、“Green”、“Yellow”}、DimProduct[Color])对列 DimProduct[Color] 设置一个筛选器,其中包含三个值“Red”、“Green”和“Yellow”。 如果 DimProduct[Color] 中不存在“Yellow”,则有效筛选器值为“Red”和“Green”。

  • 最适合在表之间不存在关系时使用。 如果涉及的表之间存在多个关系,请考虑改用 USERELATIONSHIP

  • 在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

示例

在以下示例中,模型包含两个不相关的产品表。 如果用户将筛选器应用于 DimProduct1[ProductCategory] 选择“自行车”、“座位”、“轮胎”,则同一筛选器、“自行车”、“座位”、“轮胎”将应用于 DimProduct2[ProductCategory]。

CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(
        VALUES(DimProduct1[ProductCategory]),
        DimProduct2[ProductCategory]
    )
)

INTERSECT FILTER USERELATIONSHIP