美文网首页
DAX DISTINCT 和VALUES的区别

DAX DISTINCT 和VALUES的区别

作者: PowerBI入门到实践 | 来源:发表于2019-06-27 23:34 被阅读0次

    我最近遇到朋友问的一个问题,Distinct和Values的区别是什么。这里我建立了一个案例来解答这个问题。下图我建立了两个表,Fact和Dim表,表名也是fact和dim。两个表之间存在着关系。这个关系会产生一个违背参考一致性的问题,因为fact表包含了一个c,在dim表中不存在。这个情况下下,实际上,会有一个空行插入到dim表中,然后所有fact表中没有存在于dim表的记录,都会指向这个空行。这个就是distinct和values的区别。


    `
    The measure “Count Distinct” is defined as =COUNTROWS(DISTINCT(Dim[Dim])) 
    
    The measure “Count Values” is defined as =COUNTROWS(VALUES(Dim[Dim]))
    

    如你所见,values返回了在dim表中返回了一个空行,这个代表着fact表中没有与dim表匹配的记录。而distinct只返回了dim表中存在的值。这就是这两个函数的区别及计算方式。有个很重要的点,就是blank存在于原始的表格中,无论是在原始的表格列,或者计算列,那么这个值都会被values和distinct考虑进去,会被当做一个正常值,不会被distinct忽略。你在透视表的截图中可以看到,行中有个额外的blank值。
    powerpivot中不是所有的blank都是一样的。
    如果你要计算一个列中非空的单元格的不重复值数量,而忽略关联表的值。公式可以这样写:

    = COUNTAX( DISTINCT( Dim[Dim] ), Dim[Dim] )
    

    相关文章

      网友评论

          本文标题:DAX DISTINCT 和VALUES的区别

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