教你学会写Power BI度量值:累计聚合

教你学会写Power BI度量值:累计聚合_第1张图片

​经常碰到本年至今、本月至今的数据计算,其实还有一类计算是,从历史最早日期至今的累计计算,比如从开业到现在总共卖出了多少件商品,累计实现了多少销售额等。

本年累计称为YTD,历史至今的累计是不是可以称为HTD呢:) ;这样的时间段很可能是跨年的,所以时间智能函数并不适用,不过不用时间智能函数依然可以很简单的进行计算。

模拟数据如下:

教你学会写Power BI度量值:累计聚合_第2张图片

只是计算一个整体累计销售额很简单,我们想要计算的是从最初到任意一个日期的累计销售额,为了能一次计算出各种粒度的历史至今,可以先构造一个日期表并建立关系。(参考:玩PowerBI必备的日期表制作方式汇总)

然后写个度量值,

历史至今 累计收入 = CALCULATE(SUM('订单表'[销售额]),FILTER(ALL('日期表'),'日期表'[日期]<=MAX('日期表'[日期])))

然后在矩阵中看看结果,

教你学会写Power BI度量值:累计聚合_第3张图片

结果正是历史所有订单的累计销售额,这个度量值的关键是用MAX函数获取当前上下文的日期,然后返回小于等于当前日期的所有销售额的合计。

这个度量值写法有一个问题,就是它把日期表中所有的日期都计算了一遍,其实大于最后一个订单日期的无须计算,因为结果并不会发生变化。

为了解决这个问题,可以先把最后一个订单日期找出来:

订单最大日期 = MAXX(ALL('订单表'),'订单表'[订单日期])

然后在历史累计中增加个判断条件,

历史至今 累计收入 优化 = IF(MIN('日期表'[日期])<=[订单最大日期],    CALCULATE(SUM('订单表'[销售额]),FILTER(ALL('日期表'),'日期表'[日期]<=MAX('日期表'[日期]))))

再来看一下结果,

教你学会写Power BI度量值:累计聚合_第4张图片

正是期望的效果。

历史至今的聚合计算,不一定只是累计求和,还可以找出历史上最大的订单金额,或者历史至今的平均订单金额,这些情况只需要改一下聚合函数就行了,比如平均订单金额就是把SUM改成AVERAGE,

历史至今 平均订单订单 = IF(MIN('日期表'[日期])<=[订单最大日期],        CALCULATE(AVERAGE('订单表'[销售额]),FILTER(ALL('日期表'),'日期表'[日期]<=MAX('日期表'[日期]))))

最大最小订单同理,不再一一列出,结果如下:

教你学会写Power BI度量值:累计聚合_第5张图片

-精彩推荐-

PowerBI数据分析和可视化实战案例

精选 | 实用炫酷的Power BI自定义图表

准备30天,我通过了PowerBI认证考试

PowerBI嵌入到PPT,这个方法亮了


PowerBI星球学习社群

双11限时优惠活动进行中

1000+ PowerBI爱好者已经加入,活动期间直降60,以后不再有的低价,想好好学习PowerBI的星友,请把握住机会哦。

加入以后,你可以获得:

100+ 优秀的可视化案例; 

100+ DAX函数卡片; 

200+ 公众号文章源文件; 

500元+ 学习资料; 

一年不限次的提问;

……

扫码加入,立享优惠

教你学会写Power BI度量值:累计聚合_第6张图片

the end.

你可能感兴趣的:(教你学会写Power BI度量值:累计聚合)