专栏首页公众号PowerBI大师Power BI 计算组理解(二)

Power BI 计算组理解(二)

上一节 Power BI 计算组理解(一)中,提出可以将计算项理解为 特殊的自定义函数 ,其输入参数为度量值,不过上一节创建的计算组(收入、利润、利润率),在其值定义中并没有用到其输入的度量值本身。

其实很多情况下,计算组一般用在计算 年累计、去年同期、同比增长率 等类似场景,因为这些计算往往只是基础度量值不同,其他逻辑均相同,这样使用计算组就可以极大的简化度量值的编写。

在这种场景下,定义这类计算项,就需要使用其输入的度量值。获取输入到计算组的度量值需要使用dax函数SELECTEDMEASURE()。

下面创建一个 时间维度计算组,并在其创建三个计算项:

  • 本期:
SELECTEDMEASURE()
  • 上年同期:
CALCULATE ( SELECTEDMEASURE (), SAMEPERIODLASTYEAR ( '日期表'[Date] ) )
  • 同比增长率:
DIVIDE (
  SELECTEDMEASURE (),
  CALCULATE ( SELECTEDMEASURE (), SAMEPERIODLASTYEAR ( '日期表'[Date] ) )
) - 1

不过,当输入度量值为[利润率]时,上述计算组中的同比增长率(一般用来计算绝对数)可能没有意义,这时可以使用使用DAX函数 ISSELECTEDMEASURE()排除。

因此,可以将同比增长率计算项的定义更改为:

IF (
    NOT ISSELECTEDMEASURE ( [利润率] ),  //判断输入度量值是否为[利润率]
    DIVIDE (
      SELECTEDMEASURE (),
      CALCULATE ( SELECTEDMEASURE (), SAMEPERIODLASTYEAR ( '日期表'[Date] ) )
    ) - 1,
   BLANK ()
)

此时,该模型中就存在两个计算组,如果返回页面,将 时间维度计算组 表列[Name1]加入至切片器后,当前页面的度量值便同时受两个计算组所控制,如下

如果参照上一节的写法,此时页面的度量值实际转换成以下形成:

CALCULATE (
   CALCULATE ( [值], '指标名称计算组'[Name] = "收入" ),
  '时间维度计算组'[Name1] = "上年同期"
)

CALCULATE (
   CALCULATE ( [值], '时间维度计算组'[Name1] = "上年同期" ),
  '指标名称计算组'[Name] = "收入"
)

CALCULATE ( [值], '时间维度计算组'[Name1] = "上年同期", '指标名称计算组'[Name] = "收入" )

这三种都是等价的,他们最终都会转换为:

CALCULATE ([收入], SAMEPERIODLASTYEAR ( '日期表'[Date] ) )

需要注意的是,虽然也可以像其他表列一样,在DAX中直接引用其计算组表的名称列,但与其他列筛选并不相同:

1、在DAX中直接引用其计算项的名称,进行列筛选,该筛选只对度量值起作用

2、当模型中存在多个计算组时,其对度量值的重新定义改写存在先后顺序(改写的先后顺序会影响计算结果,本案例由于其特殊性,其不同的顺序计算结果相同),但该顺序由参数 Calculation Group Precedence 决定,不会因为在CALCULATE中写在外层就先执行外层。因此上面三种写法是等价的。

3、同一计算组,多个计算项通过CALCULATE嵌套筛选,内层筛选会覆盖外层筛选。

-------------------------------------------------------------

本文分享自微信公众号 - PowerBI大师(PowerBIMaster),作者:张震

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Power BI 计算组理解(一)

    有时为了节省页面空间,让当前报表提供更多的信息,经常会有这样的设计,即提供一些选项给报表使用人,当报表使用人选定某个项目时,当前报表才显示该项目的信息,如下:

    公众号PowerBI大师
  • PowerBI系列之什么是PowerBI

    大家好,我是小黎子!一个专注于数据分析整体数据仓库解决方案的程序猿!今天小黎子就给大家介绍一个数据分析工具由Microsoft出品的全新数据可视化工具Powe...

    黄昏前黎明后
  • PowerBI 可视化大赛选手获奖感言

    2021 年 6 月 10 日第四届 Power BI 可视化大赛获奖名单公布,非常幸运,我的作品《中国职业教育院校分析报告》获得了教育行业特别奖,开心、兴奋之...

    BI佐罗
  • Chris Webb:从另一个BI平台迁移到BI时应避免的五个错误

    作者:Chris Webb原文:https://blog.crossjoin.co.uk/2020/04/20/five-mistakes-to-avoid-w...

    陈学谦
  • 如何选择数据分析可视化工具?Excel, Tableau还是Power BI?

    正确分析使用数据可能会挖到宝藏。那么,作为个人或公司,如何选择分析和可视化数据的工具?

    大数据文摘
  • 为什么业务分析师要学 PowerBI DAX - 历史演化篇

    为什么业务分析师要学 Power BI 尤其是 DAX 呢?我们分三文来说清楚。

    BI佐罗
  • 财务报告三大表统一及高级分析通用模板 - 数据结构篇

    用户设置可以在一个界面切换三大报表,非常容易。整套财务报告可以在三大表之间切换分析,如下:

    BI佐罗
  • 全网首发:PowerBI 原生瀑布图终极解决方案

    瀑布图,在分析中是非常重要的图。在 Power BI 中的原生瀑布图使用起来有些问题,本文来探讨如果基于原生瀑布图的高级使用方法和限制。

    BI佐罗
  • Zebra BI 4.5 发布 - 支持自定义计算

    按照 Power BI 教父以及 DAX 之父所言,Power BI 为了业务分析师而设计,在可视化层面的易用性,相比 Zebra BI 来说,差距之大。

    BI佐罗
  • Power BI动态数据源:一次解决问题的思考历程

    前两天在使用powerbi从trello获取数据发布到云端进行刷新时,出现一个从没遇到过的错误,这个错误导致的结果是数据源那一项直接没了,连给你纠正错误的机会都...

    陈学谦
  • Power BI商业智能与业务分析的结合,让你在企业中脱颖而出

    传统上,企业将数据战略集中在power BI商业智能(BI)上,但预测和规范分析平台的兴起,部分归功于机器学习和人工智能,正在改变这个方程式。即使是商业智能本身...

    CDA数据分析师
  • 2021 微软应用大会 Power BI 全解

    微软应用大会就是帮助发现如何从数据到商业应用的,以便帮助企业改进决策并大规模自动化。

    BI佐罗
  • 如何让老板在内网用 Excel 访问你的 PowerBI 模型

    简言之,Power BI 内网穿透精灵,帮助数据建模师在企业内为全部用户提供数据服务,而不需依赖任何 IT。

    BI佐罗
  • 【Power BI X SSAS】—— Power BI模型导入到SSAS

    第一篇比较了Power BI数据导入的三种方式,指出了Power BI结合SSAS的意义。

    btharp
  • 【Power BI VS Tableau】——可视化篇(上)

    Power BI VS Tableau 是个老生常谈的话题。相关文章在csdn、知乎、谷歌上有不少。但一来这两家的产品更新迭代很快,二来网上很多文...

    btharp
  • 全网首发 PowerBI 可视化终极通用作图法

    很可惜,绝大多数用户都在长期索取技巧,模板的过程里丧失了抽象能力。在《BI 真经》的学习种,我们讲试图帮助大家修复这项能力。

    BI佐罗
  • 10W人都想知道的答案!可视化黑科技,这4个数据工具谁最厉害的?

    在搜索商业智能(BI)工具时,可能每个BI供应商都将其产品称为唯一的“最佳”解决方案进行宣传,晕乎转向。笔者身边有很多在数据中心工作的朋友,也有各种IT信息部的...

    大数据分析不是事儿
  • BI 界震动 - Power BI Premium 个人版只要每月 120 元

    Power BI Premium Per User 定价:每月 120 元人民币。

    BI佐罗
  • CDA直播 | 从Excel到Power BI商业智能分析

    过了一段时间,你越来越对工作的价值产生了怀疑:我读了十几年书,为啥还在做重复工作?

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券