前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >忽略筛选器与自动匹配,这一点没深入讲的问题,其实早就碰到了!| DAX实战

忽略筛选器与自动匹配,这一点没深入讲的问题,其实早就碰到了!| DAX实战

作者头像
大海Power
发布2021-12-21 20:01:41
6770
发布2021-12-21 20:01:41
举报
文章被收录于专栏:用户8950297的专栏

在小黄书上,有个关于calculate函数的入门例子,通过all函数删除销售人员维度的影响,得到结果的同时,又带来一个问题如下:

筛选上下文是小勤和A产品,删去小勤这个筛选上下文,还留一个A产品,那A产品的销量为啥不是100,而是空白呢?

这是一位读者的疑问:

首先,能注意到这个细节并深入思考,很赞!

对于初学者来说,可以先按书上的说法“维度A产品和销售人员小勤的组合为空”——这个虽然不是最本质的解析简单理解,记住这种情况,然后在实际工作中先用起来。

而随着学习和应用的深入,比如开始接触到DAX里一个比较“高阶”的知识点:AutoExist(自动匹配),这个问题就会迎刃而解:

DAX里为了提升计算效率,对于不可能存在的组合(同一个表里),会直接在度量计算开始时予以剔除。

在此,我们稍作拓展:如果维度不是来自于同一个表,会什么情况?

比如,产品和销售两个维度分别从不同的维度表与销售明细表关联,模型如下图所示:

在这种情况下,这两个维度完全有可能存在组合(不能因为明细表中可能不存在而剔除,因为现在没有,以后可能有;明细表中没有,其他关联表中可能有……),所以,DAX里不会提前剔除再计算,所以,我们如果基于维度表做忽略计算:

代码语言:javascript
复制
sumOfSales_AllSales = 
       CALCULATE(
               [sumOfSales],
               ALL('factDetail'[销售])
       )

你会看到结果不太一样:

具体情况可下载本文配套案例文件查看:

https://share.weiyun.com/a8619S30

关于自动匹配,可以进一步参考我前期的文章《毁三观的自动匹配,到底是什么鬼?| DAX疑难点》,有兴趣的朋友可以深入了解一下,初学的朋友可以先有个简单的印象。

同时,对于DAX的学习,提供一点点建议如下:

1、初学者在学习基础的过程中,一般也可以不要陷在这些原理和细节的处理上,可以适当先加入点记忆;

2、在实际工作中先用起来,很多细节在实际工作的计算中不太会遇得到;

3、随着应用的深入,基础越来越扎实,同时也会遇到一些新的问题,然后再深入理解/修正。

学习,就是一个螺旋式前进的过程!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

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