PowerBI技巧之PowerBI_DAX的计算组之间的优先级设置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DAX—快速入门与原理掌握
现有文章:
1、初识DAX—DAX是什么?能干什么?怎么用?
2、DAX的度量值、计算列、查询分别是什么?数据模型又是什么?
3、DAX的筛选上下文详解以及CALCULATE的初步应用
4、DAX的常用迭代函数详解
5、DAX的常用表函数之VALUES与DISTINCT
6、DAX的ALL类函数详解以及影子筛选上下文的介绍—上篇
7、DAX的ALL类函数详解以及影子筛选上下文的介绍—下篇
PowerBI/DAX的计算组功能是什么?怎么用?
PowerBI/DAX的计算组之间的优先级设置
【停止更新】该专栏的知识分享已有免费的视频课程分享在B站,欢迎前往观看!
本文目录
DAX—快速入门与原理掌握
一、前言
二、计算组之间的优先级
三、总结
一、前言
在昨天介绍计算组的《PowerBI/DAX的计算组功能是什么?怎么用?》这篇文章中,漏掉了一个比较关键的点,那就是多个计算组作用于同一个度量值时的优先级问题,因此在这篇文章里做补充说明,算是之前那篇文章的后续吧。如果你没看过之前那篇介绍计算组功能的文章,我建议你先去阅读完后再来看本文,因为在这里我不会再去重复的讲解怎么创建计算组、怎么使用计算组的动态数据格式等等内容,我将默认你看过上篇文章。
二、计算组之间的优先级
先来看看下面这张图,将它称呼为图1,下面需要引用这张图,请记住它的名字:
为了方便展示与讲解,我没有把数据透视表弄得很复杂,仅仅是把年份与月份放在了行字段,将销售金额和销售数量放在了值字段,将计算组的计算项都做成了切片器,并且这些切片器都还没有工作。所用的销售金额与销售数量度量值如下:
Sales = SUMX('T3销售','T3销售'[T3销售册数]*'T3销售'[T3销售单价])
Volume = SUM('T3销售'[T3销售册数])
现在问题来了,我定义了一个将数值加上100的计算组以及一个能改变数值符号正负的计算组,那么:是先将数值加上一百后再改变符号,还是改变符号后再将数值增加一百?
想要弄懂上面的计算顺序,那么就先要设置计算组之间的优先级,只有告诉引擎先执行那个计算组才能够得
到正确结果。计算组的优先级设置位置如下图:
上图中的红框框起来的行就是计算组优先级的设置地方,可以看到,我将改变数值符号的计算组的优先级设
数字越小越优先执行,因为它是置为了100,你可能会觉得这个数字越大就越是优先执行。其实不是的,应该是数字越小越优先执行,因为它是按照升序排列的,所以数字越大越靠后执行。下面来看一下将数值增加一百的计算组的优先级:
按照升序排列的,所以数字越大越靠后执行
我把将数值增加一百的计算组的优先级设置为了20,而改变数值符号的计算组的优先级设置为了100,所以是先将数据透视表里的数值加上一百后再改变符号,结果如下图:
可以看到,上图与图1相比,数值的确是先增加了一百再改变了符号。
下面将这两个计算组的优先级互换,将数值增加一百的计算组的优先级设置为100,而改变数值符号的计算组的优先级设置为了20,所以结果是改变符号后再将数值增加一百,结果如下图:
同样的,将上图的结果与图1的值作比较,可以验证数值是否是先改变符号再增加一百。
三、总结
当你定义了多个计算组,且得到的结果让你迷惑时,那么很可能就是计算组之间的优先级顺序没有设置好,这点需要注意。
那么,关于计算组的优先级的补充说明就到此为止了。如果你没有相关数据进行练习或者想要我上面使用的数据,可以在上一篇介绍计算组功能的文章末尾处获取。再次给出上篇文章的传送门:《PowerBI/DAX的计算组功能是什么?怎么用?》