FILTERS,返回某一列被直接筛选的值,默认情况下是全选,其语法:
Filters(columnName)
直接看示例吧
假设有两张表,一张为学生表,另一张为成绩表,关系为1对多

建立两个度量值,其中一个是计算学生表中StuName被直接筛选的值,另一个度量值是计算成绩表Stu被直接筛选的值
filters.StuName = CONCATENATEX(FILTERS('YiLuXiangBei Stu Student'[StuName]),'YiLuXiangBei Stu Student'[StuName], ",")
filters.stu = CONCATENATEX(FILTERS('YiLuXiangBei Stu Score'[Stu]),'YiLuXiangBei Stu Score'[Stu], ",")
我们将学生表中的StuName用作切片器,选中某些值,我们看到的是度量值filter.StuName会随着我们的筛选而变化,但是filters.stu 则不会;说明StuName被直接筛选了,但是Stu并没有,所以filters.stu度量值不会改变(见下图)

我们再来看一个例子,加入一个新的度量值,用Values来看看Stu被筛选的情况
values.stu = CONCATENATEX(values('YiLuXiangBei Stu Score'[Stu]),'YiLuXiangBei Stu Score'[Stu], ",")
当学生表中的StuName被筛选时,实际上成绩表中的Stu也被筛选了,但是filters并不能返回被筛选的值,因为filters只检测某列是否被直接筛选,不能检测通过关系筛选的

最后,我们再重申一下,函数Filters只检测某列是否被直接筛选,并返回其被筛选后的值,不能检测通过关系筛选的
我是BISeven,欢迎与我讨论
参考文章:
https://docs.microsoft.com/en-us/dax/filters-function-dax
文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




