当财年从 3月1号开始时

工坊的小伙伴们大家好,在应用时间智能函数时,我们会遇到计算当年的总计值的情况,比如下面的例子:
二极管厂商每天都会生产一定量的二极管,厂家领导层希望看到每月的二极管产量以及当月二极管的当年累计产量。
数据大概长这样:
file
首先写出最简单的产量合计
产量合计 = SUM(Output[产量])
计算年累计产量时,我们使用如下表达式
产量累计 = TOTALYTD(SUM(Output[产量]) , 'Calendar'[Date])
月度产量及累计产量的图形如下所示
file
情景比较复杂一点的时候,我们需要计算财年累计产量,比如从4月1号开始计算累计的话,这时候使用我们仍然使用TOTALYTD,只不过需要额外的参数,比如财年从4月1号开始时,我们需要将额外的参数设置为3月的最后一天,即:
Fiscal产量累计 = TOTALYTD(SUM(Output[产量]) , 'Calendar'[Date],"03-31")
file
从图中可以看出,是从4月份开始计算累计值的。
考虑一种非常特殊的情况,当财年为3月1号开始时,事情就有些复杂了,如果该年为闰年,那么额外的参数应该设置为2月29号,如果该年为平年,那么额外的参数应该设置为2月28号。
此时我们暂时没有很好的方案,不过我们可以写出时间智能函数的类似功能的DAX Pattern来解决这个问题。
例如:
Fiscal-3/1产量累计 =
CALCULATE (SUM(Output[产量]),
VAR FirstFiscalMonth = 3 // 设置财年的第一个月//
VAR LastDay =
MAX ( 'Date'[Date] ) // 选取时间范围内的最后一天//
VAR LastMonth =
MONTH ( LastDay ) //选取时间范围内的最后一个月//
VAR LastYear =
YEAR ( LastDay ) - IF ( LastMonth < FirstFiscalMonth, 1 ) //选取时间范围内的最后一年//
VAR FilterYtd =
DATESBETWEEN ( 'Date'[Date],
DATE ( LastYear, FirstFiscalMonth, 1 ),
LastDay ) //筛选介于财年首月1号至选取时间范围最后一天日期//
RETURN
FilterYtd)
放在图中是下面这样的:
file
今天的分享就是这些,欢迎小伙伴们留言~
file

  • PowerPivot工坊原创文章,转载请注明出处!

如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。点击左下角“阅读原文”可直达云课堂。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”
file
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯。欢迎小伙伴儿们转发分享~
file
阅读原文

Power Pivot工坊