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

需求

实现如下图的周同比环比分析

在这里插入图片描述

实现

日期表  = -- 创建一个日期表
addcolumns(
	addcolumns(
		calendar auto(),
		"年度“,year(date),
		“季度”,“q”&format([date],"q"),
		“月份”,format([date],"mm"),
		“日”,format([date],"dd"),
		“年度季度”,format([date],"yyyy")&"q"&format([date],"q"),
		“年度月份”,format([date],"yyyy-mm"),
		“周几”,weekday([date],2) ,-- 周从星期一(1)开始,到星期天(7)结束
		“周数”,weeknum([date],2) -- 周数指此周在一年中的数值,1-52
		),
		"年度周数",[年度]*100+[周数]
		)
		-- 返回如下日期表

在这里插入图片描述
日期表

WEEKDAY(<date>, <return_type>)  

在这里插入图片描述

WEEKNUM(<date>[, <return_type>])  

有两个系统用于此函数:

系统 1 - 包含 1 月 1 日的周是一年的第一周,编号为“第 1 周”。
系统 2 - 包含一年第一个星期四的周是一年的第一周,编号为“第 1 周”。 此系统是 ISO 8601 中指定的方法,通常称为欧洲周编号系统
在这里插入图片描述

度量值 上周销售额 = 
var curyear = selectedvalue('日期表'[年度]) -- 返回当前上下文的唯一取值
var curweeknum = selectedvalue('日期表'[周数]) -- 返回当前上下文的唯一取值
return
	calculate(
		[销售金额],
		filter(
		all('日期表'),
		'日期表'[年度]=curyear&&'日期表'[周数]=curweeknum-1
		)
	)
度量值 去年同周销售额 = 
var curyear = selectedvalue('日期表'[年度]) -- 返回当前上下文的唯一取值
var curweeknum = selectedvalue('日期表'[周数]) -- 返回当前上下文的唯一取值
return
	calculate(
		[销售金额],
		filter(
		all('日期表'),
		'日期表'[年度]=curyear-1&&'日期表'[周数]=curweeknum
		)
	)
度量值 本周至今WTD =
var curyearweek = selectedvalue('日期表'[年度周数]) -- 获取当前周
return 
	calculate(
		[销售金额],
		filter( -- 计算当前周截止到当前天有几天
			all('日期表'), --从取消了所有筛选的日期表中筛选
			'日期表'[年度周数]=curyearweek &&'日期表'[date]<=max('日期表'[date]) 
			--取到年度周数为当前周,且小于等于当前上下文最大的那天的日期

上面的代码中涉及到了selectedvalue,附上官方文档
SELECTEDVALUE文档例子

DEFINE
MEASURE DimProduct[Selected Color] =SELECTEDVALUE(DimProduct[Color], "No Single Selection")
EVALUATE
 SUMMARIZECOLUMNS  
   (ROLLUPADDISSUBTOTAL(DimProduct[Color], "Is Total"),  
   "Selected Color", [Selected Color])
   ORDER BY [Is Total] ASC,  [Color] ASC

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值