扩展表——ALL与ALLEXCEPT

如题所述

第1个回答  2022-06-08

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

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

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

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

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

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

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

举个例子:

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

原生列与相关列:

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

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

举个例子:

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

上述的四列就是原生列。

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

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

例如:

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

传送门:

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

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

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

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

举个例子:

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

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

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

使用细则:

传送门:

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

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

小伙伴们❤GET了么?

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

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

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

相似回答
大家正在搜