美文网首页BI学习笔记
扩展表——ALL与ALLEXCEPT

扩展表——ALL与ALLEXCEPT

作者: Fabric丨白茶 | 来源:发表于2021-07-10 12:09 被阅读0次

    ——PowerBI最难理解的地方是什么?

    ——白茶觉得是上下文。

    日常生活中,学会使用DAX之后,我们已经习惯使用DAX函数来灵活的展示各种业务需要的KPI。

    可是在构建函数的过程中,我们经常写着写着上下文就会被搞晕。

    什么时候清除全部的上下文?什么时候清除部分上下文?扩展表在这里面有什么用?这些都是我们日常使用中需要注意的问题,一个细节疏忽了,就可能导致我们整体的思路崩塌掉。

    • 理解什么是扩展表

    扩展表理论,说的通俗一点,其实就是维度表与事实表的术语描述。

    模型关系中,我们最常使用的模型关系就是“一对多”。(即One To Many)

    站在Many这一端,所有的One都是衍生出来的扩展表。

    也就是从事实表往回推,所有的维度表其实都是事实表的扩展表。

    举个例子:

    在上图的模型关系中,Model-Factsales、Model-Factstock、Model-Facttask这三张表作为事实表存在,那么其他所有对应的维度表都是这三张事实表的扩展表。

    原生列与相关列:

    原生列,即事实表与维度表之间的主键列。

    相关列,事实表中原本不存在的列,可通过主键与事实表建立关系的列。

    举个例子:

    在上述模型关系中,销售明细作为事实表存在,产品表和日期表作为维度表存在。

    '销售明细'[商品名称]——'产品表'[商品名称]

    '销售明细'[销售日期]——'日期表'[Date]

    上述的四列就是原生列。

    '产品表'[销售价]或者'日期表'[年度月份]

    这种事实表原来没有的,但是可以通过主键与事实表建立关系的,即为相关列。


    • 扩展表与RELATED函数。

    RELATED函数,通常可以作为返回模型关系中的相关列使用。

    例如:

    事实表中只有销售数量,我想计算该商品的总销售金额,即可使用RELATED函数返回维度表中相关的[单价]列。

    传送门:

    函数周期表丨筛选丨值&表丨RELATED系列


    • 扩展表对于DAX还有什么影响呢?

    ALL函数,是我们使用频率非常高的一个函数,我们经常需要使用ALL来清除整个表的上下文筛选或者某一列的筛选。

    ALLEXCEPT函数,可以保留某一列筛选。

    严格来说,ALL+VALUES与ALLEXCEPT的作用有些时候是差不多的,但是区别点在哪里?

    举个例子:

    ALLEXCEPT函数参数可以使用相关列。

    如图所示,这里就使用了[商品名称]这一相关列。

    那么还有哪些点也是需要我们注意的呢?

    使用细则:

    • 一般情况下,不要ALL整个事实表

    • 能ALL具体的列,就不要ALL整个表

    • 如果表格列稳定,多个ALL好过ALLEXCEPT

    • 如果表格列经常变动,ALLEXCEPT是最佳选择

    传送门:

    函数周期表丨筛选丨表丨ALL

    函数周期表丨筛选丨表丨ALLEXCEPT

    小伙伴们❤GET了么?

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

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

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

    相关文章

      网友评论

        本文标题:扩展表——ALL与ALLEXCEPT

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