彻底搞懂DAX函数-ISCROSSFILTERED

PowerBI 专栏收录该内容
8 篇文章 0 订阅

这篇文章来研究一下ISCROSSFILTERED函数
语法:
ISCROSSFILTERED()
https://docs.microsoft.com/zh-cn/dax/iscrossfiltered-function-dax

该函数的作用是判断ColumnName 是否被交叉筛选,当满足下面三点中任意一点时,该值返回True:

  1. 参数columnName 被筛选时
  2. 同一张表中的其他列 被筛选时
  3. 扩展表(related table) 被筛选时

所以,本篇文章从上述三点来研究ISCROSSFILTERD

一、 当参数columnName被筛选时的情况
一张很简单的表:
在这里插入图片描述
例如选择S_index,判断该列是否被交叉筛选,度量值如下:
S_index_IsCrossFilter_ = ISCROSSFILTERED(‘学生表’[S_index])
将S_index 拖入切片器,度量值[S_index_IsCrossFilter_] 生成表。当切片器S_index 没有选中任何值时,[S_index_IsCrossFilter_] 结果为False,证明S_index没有被交叉筛选
在这里插入图片描述

当切片器S_index 被筛选时,度量值[S_index_IsCrossFilter_] 的值变为True,此时证明S_index被交叉筛选
在这里插入图片描述
二 当同一张表中其他字段被筛选时的情况
为了方便,在这里考虑学生表中的S_gender 被筛选时的情况。
将Gender 拖入切片器,度量值[S_index_IsCrossFilter_] 生成表。
当切片器Gender没有选中任何值时,[S_index_IsCrossFilter_] 结果为False,证明S_index没有被交叉筛选
在这里插入图片描述
当切片器Gender 被筛选时,度量值[S_index_IsCrossFilter_] 的值变为True,此时证明S_index被交叉筛选
在这里插入图片描述

三、扩展表(related table) 被筛选时
当考虑扩展表时就得再加入另一张表了,根据关系(多对一)学生表是成绩表的拓展表
度量值要做一些更改:
S_index_IsCrossFilter_ = ISCROSSFILTERED(‘成绩表’[S_index])
更改之前:
S_index_IsCrossFilter_ = ISCROSSFILTERED(‘学生表’[S_index])
在这里插入图片描述

学生表中的Gender作为切片器,度量值
S_index_IsCrossFilter_ = ISCROSSFILTERED(‘成绩表’[S_index])生成表。
当切片器学生表(此时学生表为成绩表的扩展表)未被筛选时,度量值[S_index_IsCrossFilter_]结果为False
在这里插入图片描述
当切片器学生表(此时学生表为成绩表的扩展表)值被筛选时,度量值[S_index_IsCrossFilter_]结果为True
在这里插入图片描述
综上所述,函数ISCROSSFILTERED是判断参数列(columnName)是否被交叉筛选,当满足以下三个条件之一时,该函数返回True

  1. 参数columnName 被筛选时
  2. 同一张表中的其他列 被筛选时
  3. 扩展表(related table) 被筛选时
    注意:
    第三点中,当度量值为判断学生表中的某一列是否被交叉筛选时,当切片器选择成绩表中的列时,该值永远返回False,原因就是 成绩表不是学生表的扩展表(related table),如果读到这里你可以去试一试,看看结果
    参考:
  4. https://docs.microsoft.com/zh-cn/dax/iscrossfiltered-function-dax
  5. https://zhuanlan.zhihu.com/p/361431449

水平有限,若有错误欢迎指出
你若习惯微信公众号,也可以关注公众号:驿路向北

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值