1. 程式人生 > 實用技巧 >Power BI Dax 動態賬期,並將該月餘下的天數計入下一個月

Power BI Dax 動態賬期,並將該月餘下的天數計入下一個月

有小夥伴問我如果賬期是每月的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號也是完全正確的。

好了,今天的分享就到這裡,有問題可以向我提問,我會盡量答覆。