美文网首页BI学习笔记
函数周期表丨筛选丨值丨HASONE二人组

函数周期表丨筛选丨值丨HASONE二人组

作者: Fabric丨白茶 | 来源:发表于2020-09-26 17:30 被阅读0次

    HASONEFILTER函数与HASONEVALUE函数

    严格来说,HASONEFILTER函数与HASONEVALUE函数属于“筛选判断”类函数,隶属于“”函数,当符合条件时,结果返回TRUE或FALSE。

    用途:通常用来去掉总计栏合计。

    语法

    语法1:

    DAX=
    HASONEFILTER(<列>)
    

    等同于以下代码:

    COUNTROWS ( FILTERS ( <列> ) ) = 1
    

    语法2:

    DAX=
    HASONEVALUE(<列>)
    

    等同于以下代码:

    COUNTROWS ( VALUES ( <列> ) ) = 1
    

    参数

    列:必须是现有物理列,不能是表达式。

    返回结果

    TRUE或FALSE。

    区别

    二者用途基本上是类似的,

    区别在于HASONEFILTER受直接筛选影响;

    而HASONEVALUE受交叉筛选影响。

    例子

    模拟数据:

    这是白茶随机模拟的一组数据。

    例子1:

    代码1:

    HASONEFILTER =
    IF ( HASONEFILTER ( '例子'[类别] ), SUM ( '例子'[数据] ), BLANK () )
    

    代码2:

    HASONEVALUE =
    IF ( HASONEVALUE ( '例子'[类别] ), SUM ( '例子'[数据] ), BLANK () )
    

    结果:

    当二者同处于参数上下文环境中,作用是一致的,就是去掉总计栏总计。

    在这个上下文中,难以分辨二者的区别,换个上下文:

    度量值白茶没有任何修改,还是上面的两组代码,小伙伴们思考一下问题出在哪里呢?

    思考一下!

    1

    2

    3

    ......

    二者的区别在于受到筛选影响不同:

    1、HASONEFILTER函数只受到直接筛选影响。

    在上述图中,因为直接筛选条件[类别]并不在当前上下文中,默认筛选条件为空,因此HASONEFILTER返回结果为FALSE。

    2、HASONEVALUE函数受到交叉筛选影响,且判断当前列是否存在唯一值,存在则返回TRUE,否则返回FALSE。

    因为受到交叉筛选影响,此上下文中[组别]筛选效果等同于[类别],且只有“鞋组”是唯一值,所以呈现结果为14;

    同理受到交叉筛选影响,此上下文中[日期]筛选效果等同于[类别],且每一个都是唯一值,所以呈现所有数据。


    小伙伴们❤GET了么?

    白茶会不定期的分享一些函数卡片

    (文件在知识星球[PowerBI丨需求圈])

    这里是白茶,一个PowerBI的初学者。

    相关文章

      网友评论

        本文标题:函数周期表丨筛选丨值丨HASONE二人组

        本文链接:https://www.haomeiwen.com/subject/vkcmghtx.html