TREATAS
将表表达式的结果作为筛选器应用于无关表中的列。
语法
TREATAS(table_expression, <column>[, <column>[, <column>[,…]]]} )
parameters
术语 | 定义 |
---|---|
table_expression | 生成表的表达式。 |
柱形图 | 一个或多个现有列。 它不能是表达式。 |
返回值
一个包含 column 和 table_expression 中共同存在的所有行的表。
备注
指定的列数必须与表表达式中的列数匹配,并按相同的顺序排列。
如果列中不存在表表达式中返回的值,则将其忽略。 例如,TREATAS({"Red", "Green", "Yellow"}, DimProduct[Color]) 对 DimProduct[Color] 列设置了具有“Red”、“Green”和“Yellow”三个值的筛选器。 如果 DimProduct[Color] 中不存在“Yellow”,则有效的筛选器值为“Red”和“Green”。
表之间不存在关系时,最适合使用。 如果涉及的表之间存在多个关系,请考虑改用 USERELATIONSHIP。
在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
在下面的示例中,该模型包含两个不相关的产品表。 如果用户将筛选器应用于 DimProduct1[ProductCategory],且选择了“Bikes”、“Seats”和“Tires”,则相同的筛选器(“Bikes”、“Seats”和“Tires”)将应用于 DimProduct2[ProductCategory]。
CALCULATE(
SUM(Sales[Amount]),
TREATAS(VALUES(DimProduct1[ProductCategory]), DimProduct2[ProductCategory])
)