Power BI之DAX神功:第2卷第18回 自定義年初至今、季初至今和月初至今
友情提示:本節(jié)是上節(jié)課的補(bǔ)充內(nèi)容,如果上節(jié)課的參數(shù)21對你沒有用,本節(jié)課仍可選擇跳過
《DAX神功》第2卷第11回 我們學(xué)習(xí)了累計(jì)至今區(qū)間
《DAX神功》第2卷第17回 我們學(xué)習(xí)了基于周的時(shí)間智能
如何在上節(jié)課參數(shù)21的基礎(chǔ)上,計(jì)算累計(jì)到今區(qū)間呢?當(dāng)你理解了思路,就可以以不變應(yīng)萬變

一、正常情況下的年累計(jì)至今
【度量值】
總銷售 = sum('Sheet1'[銷售])?
YTD1 = CALCULATE([總銷售],DATESYTD('Sheet1'[日期]))
YTD2 =?
? ? VAR m=max('Sheet1'[日期])
return
? ? CALCULATE([總銷售],'Sheet1'[日期]<=m && YEAR('Sheet1'[日期])=YEAR(m))

二、參數(shù)21情況下的年累計(jì)至今
根據(jù)我們上節(jié)課學(xué)習(xí)的,計(jì)算當(dāng)前日期是當(dāng)年第幾周
【新建列】參數(shù)21 = WEEKNUM('Sheet1'[日期],21)
【新建列】修證年 = year('Sheet1'[日期]+(4-WEEKDAY('Sheet1'[日期],2)) )

【度量值】
YTD3 =?
? ? ? ? var m1=max('Sheet1'[日期])
? ? ? ? var m2=max('Sheet1'[修證年])
return
? ? ? ? CALCULATE([總銷售],'Sheet1'[日期]<=m1 && 'Sheet1'[修證年]=m2)?
// 年累計(jì)至今:只考慮小于等于最大日期和等于當(dāng)前年

三、參數(shù)21情況下的月累計(jì)至今
【新建列】修證月 = if('Sheet1'[修證年]=YEAR('Sheet1'[日期]),MONTH('Sheet1'[日期]),12)

【度量值】
MTD =?
? ? ? ? var m1=max('Sheet1'[日期])
? ? ? ? var m2=max('Sheet1'[修證年])
? ? ? ? var m3=max('Sheet1'[修證月])
return
? ? ? ? CALCULATE([總銷售],'Sheet1'[日期]<=m1 && 'Sheet1'[修證年]=m2 && 'Sheet1'[修證月]=m3)?
// 月累計(jì)至今:除了考慮小于等于最大日期和等于當(dāng)前年,還要考慮等于當(dāng)前月

四、參數(shù)21情況下的年季計(jì)至今
【新建列】
修證季度 = SWITCH('Sheet1'[修證月], 1, 1, 2,1,3, 1, 4,2,5, 2, 6,2,7, 3, 8,3,9, 3, 10,4,11,4, 12,4)
// 修證月是1,2,3時(shí)返回1,修證月是4,5,6時(shí)返回2,修證月是7,8,9時(shí)返回3,修證月是10,11,12時(shí)返回4

【度量值】
QTD =?
? ? ? ? var m1=max('Sheet1'[日期])
? ? ? ? var m2=max('Sheet1'[修證年])
? ? ? ? var m3=max('Sheet1'[修證季度])
return
? ? ? ? CALCULATE([總銷售],'Sheet1'[日期]<=m1 && 'Sheet1'[修證年]=m2 && 'Sheet1'[修證季度]=m3)
// 季累計(jì)至今:只考慮小于等于最大日期和等于當(dāng)前年,還要考慮等于當(dāng)前季度


《孫興華講PowerBI火力全開》PowerBI必學(xué)課程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》視頻版合集:
https://www.bilibili.com/video/BV1YE411E7p3
PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等
https://www.bilibili.com/read/cv10222110