指定 DAX 表达式在求值过程中使用的交叉筛选的方向。
语法
- CROSSFILTER ( <关系的左列>, <关系的右列>, <筛选类型> )
复制代码
参数 | 属性 | 描述 | 关系的左列 | | 用于建立关系的两列之一 | 关系的右列 | | 用于建立关系的两列之一 | 筛选类型 | | 关闭筛选使用 0,单向筛选使用 1,双向筛选使用 2;也可以使用 None, OneWay, Both |
返回值
函数不返回任何值。仅在查询期间为所指示的关系设置交叉筛选方向。
备注
- 在一对一关系的情况下,设置为单向和双向并无任何区别。
- CROSSFILTER 只能用于支持将筛选器用作参数的函数中,例如:CALCULATE、CALCULATETABLE、CLOSINGBALANCEMONTH、CLOSINGBALANCEQUARTER、CLOSINGBALANCEYEAR、OPENINGBALANCEMONTH、OPENINGBALANCEQUARTER、OPENINGBALANCEYEAR、TOTALMTD、TOTALQTD 和 TOTALYTD 函数。
- CROSSFILTER 使用模型中的现有关系,通过位于关系两端的列标识关系。
- 在 CROSSFILTER 中,模型设置的关系的交叉筛选方向并不重要;也就是说,在模型中将关系设置为单向或双向筛选不会影响函数的使用。 CROSSFILTER 将覆盖任何现有的交叉筛选设置。
- 如果作为为参数的列不属于一个关系,或者参数属于不同的关系,则会返回错误。
- 如果 CALCULATE 表达式是嵌套的,并且多个 CALCULATE 表达式包含 CROSSFILTER 函数,那么最内层的 CROSSFILTER 就是在有冲突或歧义的情况下起作用的函数。
示例
以下度量值在计算期间激活 Sales 表和 DimProduct 表的双向关系:
- = CALCULATE([Distinct Count of ProductKey],
- CROSSFILTER(Sales[ProductKey], DimProduct[ProductKey] , Both)
- )
复制代码理解 CROSSFILTER
CROSSFILTER在公式级别控制关系的函数,与直接使用模型的双向关系相比,CROSSFILTER更加灵活,并且可以减少不必要的计算开销
|