DAX 筛选器 - CROSSFILTER 函数

说明

指定用于计算两列之间存在的关系的交叉筛选方向。

DAX CROSSFILTER 函数是 Excel 2016 中的新功能。

语法

CROSSFILTER (<columnName1>, <columnName2>, <direction>)

参数

Sr.No. 参数与说明
1

columnName1

列的名称,完全限定,通常表示要使用的关系的多方或数据(事实)表方。

如果参数以相反的顺序给出,则函数将在使用它们之前交换它们。此参数不能是表达式。

2

columnName2

列的名称,完全限定,通常表示要使用的关系的一方或查找表方。

如果参数以相反的顺序给出,则函数将在使用它们之前交换它们。此参数不能是表达式。

3

direction

要使用的跨过滤器方向 −

  • 一个 − 关系过滤器的一端或查找表端的多端过滤器。

  • 两端 − 任一端的过滤器都会过滤另一端。

  • −此关系中不会发生交叉过滤。

返回值

DAX CROSSFILTER 函数不返回任何值。

DAX CROSSFILTER 函数仅在查询期间为指示的关系设置交叉过滤方向。

备注

  • 在 1:1 关系的情况下,单向和双向没有区别。

  • CROSSFILTER 只能在以过滤器作为参数的函数中使用。例如,CALCULATE、CALCULATETABLE、CLOSINGBALANCEMONTH、CLOSINGBALANCEQUARTER、CLOSINGBALANCEYEAR、OPENINGBALANCEMONTH、OPENINGBALANCEQUARTER、OPENINGBALANCEYEAR、TOTALMTD、TOTALQTD 和 TOTALYTD 函数。

  • CROSSFILTER 使用模型中现有的关系,通过关系的终点列来识别关系。

  • 在 CROSSFILTER 中,关系的交叉过滤设置并不重要。也就是说,关系在模型中设置为过滤一个方向还是两个方向都不会影响函数的使用。 CROSSFILTER 将覆盖任何现有的交叉过滤设置。

  • 如果任何以参数命名的列不是关系的一部分,或者参数属于不同的关系,则会返回错误。

  • 如果 CALCULATE 表达式是嵌套的,并且多个 CALCULATE 表达式包含 CROSSFILTER 函数,则在发生冲突或歧义时,最内层的 CROSSFILTER 为准。

示例

= CALCULATE (Sales[Distinct Count of Products],
   CROSSFILTER (Sales[Product],Products[Product],Both)) 

dax_functions_filter.html