需求

实现如下结构的报表

基础日历表如下

实现

度量值 销售额 = sum(order_2[订单金额]) -- 算出当前上下文的销售额
度量值 上月销售额 = calculate(sum(order_2[订单金额]),dateadd(['date'[date]],-1,month))
// 从当前上下文中取出日期,倒退一个月计算销售额
度量值 月环比 = divide([销售额]-[上月销售额],[上月销售额])
度量值 去年同期销售额 = calculate([销售额],sameperiodlastyear('date'[date]))
//calculate([销售额],dateadd('date'[date],-1,year))
度量值 选中季度销售额=
var v_current_year_qtr= selectedvalue('date'[yearqtr])
//返回当前选中日期对应的季度
return calculate(sum(order_2[订单金额]),filter(all('date'),'date'[yearqtr]= v_current_year_qtr))//去除date表上所有筛选器,返回符合季度的日期记录作为计算销售额的筛选上下文
度量值 选中季度对应上个季度销售额=
var v_current_qtr = selectedvalue('date'[yearqtr]) //get current qtr --2020 May --2020q2
var v_current_qtr_begin = minx(filter(all('date'),'date'[yearqtr]=v_current_qtr), --返回当前季度的日期表,注意,如果不用all拿掉date表上的筛选,又加上新的筛选,可能会返回一空表或错误'date'[date] --取出日期字段)//current qtr begin date
var v_pre_qtr_begin = dateadd(filter(all('date'[date]),'date'[date]=v_current_qtr_begin),-- 返回当前季度的第一天-3, month --倒退三个月,取到上季度开始))// previous qtr begin date
return
calculate(sum(order_2[订单金额]),filter(all('date'),'date'[date]>=v_pre_qtr_begin && 'date'[date]<v_current_qtr_begin)) -- 20200101 and < 20200401// previous qtr sales amount -- 20200101//简单写法1:calculate(sum(order_2[订单金额]),previousquater('date'[date])) -- 当前上下文的上个季度销售额//简单写法2:calculate(sum(order_2[订单金额]),nextquater('date'[date])) -- 当前上下文的下个季度销售额

dax的上下文影响无处不在,在报表交互层面,用户可见的只是选中了的某个具体日期,但是在原始数据层面,这个日期是一个单元格,拥有自己的行上下文;在模型层面,ta处于某个关系的一端,拥有自己的筛选上下文,因此能灵活对应到其他不同字段;在报表层面,前两者被嵌入了视觉对象的代码块中,综合形成了最终的交互结果。这种隐式规则是powerbi报表可交互的核心原理。却不能仅从用户自己写的代码中被窥见,所以在刚开始学习的时候觉得难以理解。
果然很有趣!我觉得GPT暂时学不会ta哈哈哈

7.7 PowerBI系列之DAX函数专题-指定月份的同比环比和季度环比相关推荐

  1. 6.1 PowerBI系列之DAX函数专题 - filter,calculate,calculatetable

    filter 一.一些知识点 1.filter可以作为表函数(返回表)或筛选器函数(作为calculate等函数条件).返回特定筛选条件下的数据: 2.filter不能接受多个参数作为条件,多条件时用 ...

  2. 6.6 PowerBI系列之DAX函数专题 -调节器TREATAS动态建立关系

    treatas treatas可用于动态建立关系,并返回一个根据关系列匹配的数据表,并参与calculate的计算 产品表2 的订单计数 = var v_product_code = selectco ...

  3. 6.14 PowerBI系列之DAX函数专题-重点之集合函数UNION、INTERSECT、 except、crossjoin、generate

    集合函数 表1 表2 union 并集 = union('表1',表2'') intersect 交集=intersect('表1','表2') --(图1) 图1 except 差集 = excep ...

  4. 7.4 PowerBI系列之DAX函数专题-期初期末库存分析

    需求描述 商品库存的数量,每天将不同的商品数量汇总在一起,但是月汇总不能将每天的库存都加在一起,我们应取月末的库存余额. 使用lastdate和closingbalancemonth等函数实现. 实现 ...

  5. 7.6 PowerBI系列之DAX函数专题-周的同比环比与周聚合

    需求 实现如下图的周同比环比分析 实现 日期表 = -- 创建一个日期表 addcolumns(addcolumns(calendar auto(),"年度",year(date) ...

  6. 6.20 PowerBI系列之DAX函数专题 -重点之error和iferror函数

    一些知识 error函数用于发生异常情况时的自定义错误提示信息 iferror函数判断当前表达式是否出现错误,如果出现错误就进行其他操作 实例 error message = if(hasoneval ...

  7. DAX/PowerBI系列 - 参数表(Parameter Table) - 大客户分析(Top N)

    DAX/PowerBI系列 - 参数表(Parameter Table) - 大客户分析(Top N) 难度: ★☆☆☆☆(1星) 适用范围: ★★★☆☆(3星) 概况:此文为DAX/PowerBI系 ...

  8. DAX/PowerBI系列 - 玩转阿里云 Alicloud Pricing

    DAX/PowerBI系列 - 玩转 阿里云主机 Ali Cloud ECS 难度: ★★☆☆☆(1星) 适用范围: ★★★☆☆(3星) 欢迎交流与骚扰 这是啥: 双十一就到了,码农门,程序猿们有没有 ...

  9. dax powerbi 生成表函数_Power BI表连接的几个DAX函数,一次全掌握!

    原标题:Power BI表连接的几个DAX函数,一次全掌握! ​ 编写DAX代码进行业务分析时,经常会用到表与表之间的连接计算,比如在之前的产品关联分析一文中(如何用Power BI分析产品关联度?) ...

最新文章

  1. Centos下安装MongoDB复制集
  2. DB2数据库V8.2版本远程连接方法
  3. go语言 mysql卡死,Go语言MySQL优化
  4. xp系统qq安装不上网络连接服务器,winxp系统下QQ远程协助连不上如何解决
  5. RUP大讲堂(第三讲):如何建立软件产品的愿景
  6. 3. Recursive AutoEncoder(递归自动编码器)
  7. linux内存管理_浅谈Linux内存管理
  8. oracle物理结构视频教学,oracle物理结构
  9. typora下载安装步骤
  10. 辞退了一位简历造假的程序员,简历美化可以,造假不可取!
  11. WeightBiases教程
  12. SQL省市区三级表 脚本
  13. BIM+GIS开启公路工程全生命周期管理新模式
  14. 计算机如何连接wifi台式,台式电脑怎么连wifi
  15. CSS制作的32种图形效果 梯形 | 三角 | 椭圆 | 平行四边形 | 菱形 | 四分之一圆 | 旗帜
  16. ElasticSearch基础教程
  17. python fabs() 函数
  18. mini2440 sd卡加载过程详解
  19. 是指能够被程序员看到的计算机系统的属性,计算机组成原理第2版(唐朔飞)习题答案.doc...
  20. Android 热修复 Tinker Gradle Plugin解析

热门文章

  1. Hello World的由来
  2. Android Studio Logcat过滤不需要的打印
  3. 从消费者观点看“服务”产品
  4. 使用MACS2进行差异peak分析
  5. unity-tolua之Dispose释放引用
  6. 念一句咒语 AI 就帮我写一个应用,我人麻了…
  7. 7-1 求奇数分之一序列前N项和 (15 分)
  8. Loading 加载直到数据加载完再消失(vue-elementui)
  9. java Ajax入门
  10. 计算机软件技术基础 王海燕,认知案例教学法在“计算机软件技术基础”课程中的探讨与应用.doc...