暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PowerBI-Dax-HASONEFILTER

BISeven 2021-05-27
720

函数HASONEFILTER,当某列被直接筛选至一个非重复值,该函数返回True,否则返回False ,其语法:


HASNONEFILTER(ColumnName),    ColumnName 为一个物理存在的列


可以通过具体的例子来理解一下这个函数


首先这里有2张表,其中一张学生表,一张成绩表,其中张三与李四有多门科目的成绩,而赵四只有一门成绩


建立如下度量值hasonefilter.StuName,StuName来自学生表,结果表中的行标签也是来自学生表中的StuName,对于每一行来说,StuName都是被直接筛选至剩一个非重复值,所以度量值hasonefilter.StuName 在每一行中都是True

hasonefilter.StuName = HASONEFILTER('YiLuXiangBei Stu Student'[StuName])

但是,接着看下面的示例,虽然StuName同样是被直接筛选,但是其剩余的值为2,不唯一,所以hasonefilter.StuName结果为False


同样,当我们用学生表中的StuName去筛选成绩表中的Stu时,看看结果是什么?

即便我们选择了赵四,从上图中我们可以看出,学生表中的赵四只能在成绩表中找到一行记录,但是结果还是为False,是因为Stu没有被直接筛选,所以结果还是为False

总结一下

  1. hasonefilter 是用来判断参数是否被直接筛选,而且还是只筛选了一个值,只有满足以上情况时,该函数才会返回True,否则False

  2. hasonevalue 也是用来判断参数列是否被筛选至一个值,但是hasonevalue对筛选的要求是cross-filer,关于hasonevalue可以看这篇文章

所以在使用hasonefilter和hasonevalue要注意区别 

参考文章

https://docs.microsoft.com/en-us/dax/hasonefilter-function-dax

文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论