PowerBI技巧之PowerBI_DAX的计算组之间的优先级设置

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的计算组功能是什么?怎么用?》

相关文档
最新文档