除非特殊声明,本站文章均为本站原创,转载请务必保留本文链接!
文章标题:122_Power Pivot&Power BI不连续日期的日环比。
这两天有朋友在交流,dax 中使用时间智能函数写日环比,一个 dateadd 就可以了。但是有些业务不是每天都连续发生的,比如股票,周末就没数据,要环比上一个日期就不太好使了。诸如此类业务不连续的业务如何写日环比呢?

需求:
计算: test表中每天value与上一日期的变化百分比;
说明: 由于日期是非连续, 有空值;
例如: 2019/6/10 需要取 2019/6/6 号的值做除法运算。
感谢Q友 AlbertYc 提供素材。
1、基础度量值total
total = SUM(Test[Value])
2、过程度量值 previous_date,不连续日期的前一天,n 可以控制前 n 天,实际操作不用写,案例演示需求写一下。
previous_date =
//计算不连续日期的前n天date
var n=1
var date1=max('Test'[Date])
var date2=filter(all('Test'[Date]),'Test'[Date]<date1)
var date3=topn(n,date2,'Test'[Date],DESC)
return
date3
3、过程度量值 previous_date(同上2)
previous_total =
//计算不连续日期的前n天的值
var n=1
var date1=max('Test'[Date])
var date2=filter(all('Test'[Date]),'Test'[Date]<date1)
var date3=topn(n,date2,'Test'[Date],DESC)
var pt=calculate('calendar'[total],'calendar'[Date]=date3)
return
pt
4、最终需求日环比度量值 previous_dod
previous_dod =//计算不连续日期的前n天占比var n=1var date1=max('Test'[Date])var date2=filter(all('Test'[Date]),'Test'[Date]<date1)var date3=topn(n,date2,'Test'[Date],DESC)var pt=calculate('calendar'[total],'calendar'[Date]=date3)returnif(pt=BLANK(),BLANK(),divide('calendar'[total],pt)-1)
5、结果图

1、世上本无时间智能函数,大家用多了特定需求才有了时间智能函数(笔者自娱,该用还得用);
2、万变不离其宗的业务需求转换为DAX上下文,有什么需求就构建什么上下文;
3、本案例中主要利用 TOPN,虽然日期不连续,但是可排序。
除非特殊声明,本站文章均为本站原创,转载请务必保留本文链接!
文章标题:122_Power Pivot&Power BI不连续日期的日环比。