1. 程式人生 > >dax-自定義周做同比和環比

dax-自定義周做同比和環比

都沒有 切分 filter 圖片 text col 哈哈 銷售 calculate

中國式報表:公司要指定財務月做月度周期,然後還要切分周,要做同比和環比。查了一些老師的文章和資料,發覺都沒有現在要求的這麽復雜。於是只好用很笨的辦法去寫了公式,至少看起來是需求的樣子了,後續有沒有bug還暫時沒有發現,等到越做越多的時候可能就會發現弊端了吧。
寫博記錄一下(怕久了自己都忘記寫的什麽公式,順便督促一下自己要好好努力充電)。
技術分享圖片
首先要處理date表,給日期劃分好周。
如果是常規沒有特殊要求的周可以用weeknum(‘date‘[日期],2),但是這裏是要用財務月要求劃分周。(2016/12/26是2017年的第一周,2017/12/25是2018年的第一周,2018/12/24是2019年的第一周),所以這個函數無效了。
網上查到的思路是:先計算出星期幾(=weekday(‘date‘[日期],2)),然後再找出每個星期一的日期來填充(=CALCULATE(MAX(‘date‘[日期]),FILTER(‘date‘,‘date‘[星期]=1&&‘date‘[日期]<=EARLIER(‘date‘[日期]))))
技術分享圖片
我這裏是從第一周日期開始的,如果第一個日期後面計算出來的星期不是1,那麽輔助周就是空。
下面要開始計算周,網上查到的老師是直接rankx排序,跨年也直接延續下去,那我的要視覺是跨年又返回第一周,所以我自己手動做了。
技術分享圖片
技術分享圖片
手動把周分出來了,其實感覺跟excel寫函數一樣,硬來的。
順便再硬來把年份和月份都寫一下,就ok了
下面開始寫同比和環比,如果單單是統計銷售額,sum就可以,按年、周,沒問題,但是要同比,環比,還有趨勢圖。我就只會單獨寫2018年銷售額,然後2017年銷售額,再是2018年上周的銷售額。比較笨的辦法只會這樣寫了。
技術分享圖片
同比就好了。其實同比思路比較好寫,year-1,其他方法寫也沒什麽問題。
比較麻煩的是環比,沒法周-1,因為會有第一周,沒的減,所以我在date上重新寫了個上周和上周的年份來輔助,然後用USERELATIONSHIP來激活關系。
因為剛才看到上面做周的圖,最後一周都是第52周,如果不是第52周我也沒想好要怎麽寫(如果真要做,我會直接在excel裏寫好,省的麻煩,哈哈哈)
技術分享圖片
技術分享圖片
dax寫自定義周的同比和環比就結束了。(date這樣寫好麻煩,還不如在excel自定義好,用vlookup直接模糊匹配好來的快。)
看一下完成的樣子。
技術分享圖片

技術分享圖片

dax-自定義周做同比和環比