7.3 PowerBI系列之DAX函数专题-时间智能-累计聚合、滚动聚合、移动平均

文章介绍了PowerBI中如何使用时间智能函数进行数据分析,包括YTD,PYPreviousYear的概念,datesytd函数自定义财年,datesmtd和datesqtd的用法,以及在DirectQuery模式下的限制。同时,展示了如何创建度量值,如本年累计销售额,自定义财年,订单最大日期,过去3个月滚动聚合等,并解释了DATESINPERIOD函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些知识

1.power bi中使用时间智能函数一定要有一个日期连续的日历辅助表calendarauto()
2.YTD year To Date指年初到当天,PY Previous Year 指上一年。
3.使用datesytd函数可以自定义自己公司的财年范围,不指定年结束日的情况,默认是从1月到12月
4.时间智能函数在directquery中不能使用。

实例

度量值 本年累计  
YTD Sales = calculate([销售额],datesytd('date'[date]))
 -- datesytd默认从1月作为年的开始,可以传参指定年的结束日期
 -- calculate([销售额],datesytd('日历表'[Date],"5/31")) 
 // 指定从6月1日开始累计,即财年在5/31结束

在这里插入图片描述

月初到指定日期的累计 datesmtd
季度初到指定日期的累计 datesqtd
时间累计函数的用法都类似

自定义财年 fiscal year = year(dateadd('date'[date],-5,month))
//使用dateadd函数取到当前上下文的日期并按月倒推回5个月
//取出倒推后时间的年份,作为当前年

在这里插入图片描述

度量值 订单最大日期 = maxx(all('订单表'),'订单表'[订单日期])
度量值 过去3个月滚动聚合=
	if(
		min('date'[date])<=[订单最大日期],
		//由于自动创建的日历表时间范围是按照整年生成的,所以这里使用日历表时可以添加一个判断
		calculate([销售额],
					datesinperiod('date'[date],lastdate('date'[date]),-3,month),
					blank()
	) //计算过去三个月到当前对应的销售额
DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)

该函数返回一个表,此表包含一列日期,日期以指定的开始日期开始,并按照指定的日期间隔一直持续到指定的数字。
此函数适合作为筛选器传递给 CALCULATE 函数。 使用该函数可以按标准日期间隔(如日、月、季度或年)筛选表达式。

dates,日期列。
start_date, 日期表达式。(指定日期)
number_of_intervals,一个整数,指定要添加到 dates 或从 dates 中减去的时间间隔数。
interval,日期偏移的间隔。 interval 的值可以是以下值之一:DAY、MONTH、QUARTER 和 YEAR

度量值 订单编号的计数 = countrows('订单表'[订单编号])
度量值 每月销售额的平均值 = [销售额]/[订单编号的计数]
度量值 三个月移动平均销售额 = 
if(
	min(('date'[date])<=[]),
	calculate(
		if(
			countrows(filter(values('date'[month_no]),[销售额]>0))=3,
			//最开始的两个月不计算,有三个月才开始计算三个月的平均
			average('订单表'[销售额])
			 //因为销售额的最小单位是订单销售额,所以实际上计算的平均订单销售额
			),
			datesinperiod('date'[date],lastdate('date'[date]),-3,month)//数据计算范围
			)
	)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值