前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >扩展表——ALL与ALLEXCEPT

扩展表——ALL与ALLEXCEPT

原创
作者头像
PowerBI丨白茶
修改2021-09-04 09:19:08
4600
修改2021-09-04 09:19:08
举报
文章被收录于专栏:PowerBIPowerBI

——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的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档