DAX 筛选器 - CROSSFILTER 函数



描述

指定在针对两个列之间存在的关联进行计算时要使用的交叉筛选方向。

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

语法

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

参数

序号 参数及描述
1

columnName1

完全限定的列名,通常表示关联的“多”端或数据(事实)表端。

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

2

columnName2

完全限定的列名,通常表示关联的“一”端或查找表端。

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

3

direction

要使用的交叉筛选方向 -

  • 单向 (One) - 根据关联的“一”端或查找表端筛选“多”端。

  • 双向 (Both) - 任一端筛选都会筛选另一端。

  • 无 (None) - 此关联不执行交叉筛选。

返回值

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.htm
广告