zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Power BI Dax 动态账期,并将该月余下的天数计入下一个月

动态 POWER BI 天数 一个月
2023-09-27 14:23:12 时间

有小伙伴问我如果账期是每月的25号,并且当月余下的天数统计在下一个月内,那么金额该如何计算。

 

这是一个很多公司都会遇到的一个问题,那么用Power BI 如何来实现。其实并不复杂,我们来一起理一下。

 

首先我们先来思考遇到的问题

1. 将25号作为月末,而不是自然日的月末。

2. 每月25号之后的天数统计在下一个月内,剩余3~6 天会记入下一个月。

 

一看这样的要求,脑中飞过无数的计算逻辑和过程吧,一时间没什么有效方案,那么先看看下一组分析,下一组是以25天作为一个周期的账期,好像也差多,还是继续看这里。

 

为了避免账期日期的各有不同,所以要让计算过程变得灵活点,我们先来设置一个参数,账期日

mea_DayRange = 25

 

 

然后就是写Dax 函数

mea_SalesForDayLimit =
var sd=SELECTEDVALUE(Dim_Calendar[YearMonth])
var y=IF(MONTH(sd)<>1,YEAR(sd),YEAR(sd)-1)
var m=IF(MONTH(sd)-1==0,12,MONTH(sd)-1)
var frd=DATEVALUE(y&"/"&m&"/"&([mea_DayRange]+1))
var erd=DATE(YEAR(sd),MONTH(sd),[mea_DayRange])
var p=CALCULATE(SUM(Fact_Sales[Sales]),Dim_Calendar[Date]>=frd,Dim_Calendar[Date]<=erd)
return p

分别计算出每期的起始日与结束日,需要注意的是如果是一月份,年时跨年的,这里的Dax 内变量的日期计算用朴实无华的加减法,而不能套用什么的dateadd这种函数操作,我们来看一下结果

 

 

左边的list 是计算的度量值,那么为了验证,我也放了一个筛选器以及实际的销售字段

 

 

 

 发现这值的确是我们想要的,并且还能自由改变账期日

 

 可以看出,即使账期日改成了20号也是完全正确的。

 

好了,今天的分享就到这里,有问题可以向我提问,我会尽量答复。