使用Power BI DAX計(jì)算按照當(dāng)月已過天數(shù)同比或環(huán)比對(duì)應(yīng)的天數(shù)

這個(gè)場(chǎng)景我是20年碰到的,當(dāng)時(shí)寫了一個(gè)非常復(fù)雜的方案,基本實(shí)現(xiàn)了想要的功能。然而在使用的過程中,發(fā)現(xiàn)季度的匯總會(huì)異常,想了很多辦法都沒解決。后來參考了一些資料,從新做了思考,于是簡(jiǎn)化到了現(xiàn)在這個(gè)程度。今天正好在群里看到有人問這個(gè)問題,于是寫下來,希望幫助到更多人。

這個(gè)場(chǎng)景在銷售分析中是比較常見的,尤其是領(lǐng)導(dǎo)關(guān)注的比較細(xì)。想看到當(dāng)月已過的這幾天,在去年或者上個(gè)月的表現(xiàn)。這個(gè)需求我覺得還是比較充分的,對(duì)于一些周期性的行業(yè)來說,其實(shí)非常有必要。今天就給大家分享下如何計(jì)算。

需求

按照當(dāng)月已過的天數(shù),同比去年或環(huán)比上月同樣已過天數(shù)的數(shù)據(jù)表現(xiàn)。

使用下圖中的,t1時(shí)間區(qū)間和t2與t3分別做環(huán)比和同比的計(jì)算。

需求理解

思路

這里面最核心的解題思路是,只查看模型最大日期之前的數(shù)據(jù),同時(shí)據(jù)此使用日期函數(shù)進(jìn)行計(jì)算,只要能解決這個(gè)點(diǎn),那么公式就非常容易寫了。

方案

  • 第一步:計(jì)算模型最大日期
模型 模型日期 = MAXX( ALL( 'FM訂單表'[下單日期] ), 'FM訂單表'[下單日期] )
  • 第二步:計(jì)算上月或上年同期
銷售 金額 上年 同期 = CALCULATE( [銷售 金額], DATEADD( 'DM日期表'[@日期], -1, YEAR ) )
銷售 金額 上月 同期 = CALCULATE( [銷售 金額], DATEADD( 'DM日期表'[@日期], -1, MONTH ) )
  • 第三步:按當(dāng)月已過天數(shù)計(jì)算上年或上月的值
銷售 金額 上年 按 當(dāng)月已過天數(shù) = CALCULATE( [銷售 金額 上年 同期], FILTER( 'DM日期表', 'DM日期表'[@日期] <= [模型 模型日期] ) )

銷售 金額 上月 按 當(dāng)月已過天數(shù) = CALCULATE( [銷售 金額 上月 同期], FILTER( 'DM日期表', 'DM日期表'[@日期] <= [模型 模型日期] ) )
  • 第四步:按當(dāng)月已過天數(shù)計(jì)算和上年已過天數(shù)與上月已過天數(shù)的同比和環(huán)比
銷售 金額 上年 按 當(dāng)月已過天數(shù) 同比 % = 
VAR t1 = [銷售 金額]
VAR t3 = [銷售 金額 上年 按 當(dāng)月已過天數(shù)]
RETURN DIVIDE( t1 - t3, t3 )

銷售 金額 上月 按 當(dāng)月已過天數(shù) 環(huán)比 % = 
VAR t1 = [銷售 金額]
VAR t2 = [銷售 金額 上月 按 當(dāng)月已過天數(shù)]
RETURN DIVIDE( t1 - t2, t2 )

最終效果

最終效果
到日期的數(shù)據(jù)
到年季月的數(shù)據(jù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容