PowerBI/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的计算组功能是什么?怎么用?

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值