DAX 中有许多可以用于检查上下文中的筛选器及其效果的函数,利用它们既可以帮助我们检查度量值的计值环境,有时也可以辅助我们进行层次判断,以选择不同的计值逻辑。
例如对于许多财务类指标都会涉及合并抵消,因此视所在层级要选择不同的数据来源或计算方法。再譬如在进行排序时想分别按所在层级排序等。
本文将使用以下两个表格作为示例来观察各个函数的应用效果
ISFILTERED和ISCROSSFILTERED
ISFILTERED(列)可以判断在当前计值区域中,是否有直接作用于该列的筛选器,并返回TRUE/FALSE值。该函数也可以接受表作为参数,使用表时则判断表中是否有任意一列受到了直接筛选。
而ISCROSSFILTERED(列)则判断在当前计值区域中,是否有直接或经过传导的筛选器作用于该列。同理,使用表作为参数时,判断表中是否有任意一列受到筛选。
直接筛选:来自切片器、筛选器、视觉对象中的行或列的筛选
传导筛选:经过表上的其它列、或者关系模型传导而来的筛选
接下来,创建一组度量值:
ISFILTERED表