從日期角度分析問(wèn)題昼丑,在Power BI中用DAX實(shí)現(xiàn)基本上會(huì)基于時(shí)間智能函數(shù)處理。
由于PowerBI DAX中時(shí)間智能函數(shù)眾多夸赫,有必要梳理形成一個(gè)統(tǒng)一的模式菩帝。它能幫助業(yè)務(wù)(尤其常常是財(cái)務(wù))解決的問(wèn)題包括但不限于:
- 本期至今指標(biāo)(XTD):年度至今(YTD),季度至今(QTD)茬腿,月度至今(MTD)等
- 上期同期指標(biāo):上年同期呼奢,上季同期等
- 上期全部
- 基于時(shí)間區(qū)間的對(duì)比
訂單指標(biāo)集
以示例目的,選擇訂單作為業(yè)務(wù)對(duì)象切平,其常見(jiàn)指標(biāo)集包括:
- 訂單 銷售額 合計(jì)
- 訂單 利潤(rùn)率 合計(jì)
- 訂單 數(shù)量
為了使用方便握础,設(shè)置一個(gè) 動(dòng)態(tài)的 訂單指標(biāo),包括以上所有指標(biāo)悴品,稱為 [訂單 指標(biāo)]禀综。
日期表系列
首先介紹 日期表,初次接觸PowerBI DAX會(huì)認(rèn)為日期表是一個(gè)多列的表苔严,其實(shí)日期表的最簡(jiǎn)單形式僅僅是一個(gè) 單列日期 構(gòu)成的表定枷,如果用DAX來(lái)實(shí)現(xiàn),只需要寫(xiě):
日期表 = CALENDAR( 開(kāi)始年份 , 結(jié)束年份 )
即可届氢。由于這種單列的日期表不能滿足復(fù)雜的實(shí)際業(yè)務(wù)需求欠窒,包括從不同的日期粒度(日,周退子,月岖妄,季,年等)來(lái)計(jì)算指標(biāo)以及一些動(dòng)態(tài)靈活的需要寂祥,這里總結(jié)常用的三種日期表荐虐,如下:
關(guān)于日期表的討論不再贅述。
日期表可以采用DAX公式或Power Query公式均可構(gòu)建丸凭,以上范例提供了詳細(xì)完整的Power Query公式構(gòu)建方法福扬。
為了集中于本案例,這里只使用日期表贮乳,并使用[訂單 指標(biāo)]度量值作為示例忧换。
本期至今 YTD,QTD向拆,MTD亚茬,WTD
常用的本期至今指標(biāo)包括包括本年至今(Year To Date),本季至今(Quarter To Date)浓恳,本月至今(Month To Date)刹缝,本周至今(Week To Date)碗暗,計(jì)算如下:
WTD并非有類似的函數(shù),因此需要自行構(gòu)建梢夯,如下:
?? 提示
TOTALYTD言疗、TOTALQTD、TOTALMTD有等價(jià)的寫(xiě)法颂砸,可以僅使用上述方法噪奄。
上期同期 PY,PQ人乓,PM
常用的上期同期指標(biāo)包括上年同期(Previous Year)勤篮,上季同期(Previous Quarter),上月同期(Previous Month)色罚,上周同日(7日前)碰缔,計(jì)算如下:
?? 提示
SAMEPERIODLASTYEAR 可產(chǎn)生與 DATEADD ( '日期'[Date], -1, YEAR ) 同樣的效果。
很少有上周同期的業(yè)務(wù)叫法戳护,更適合稱為【7日前指標(biāo)】金抡,就其本質(zhì)也是上周同期的概念,故放在這類指標(biāo)中腌且。
上期全部 PYT梗肝,PQT,PMT切蟋,PWT
與 上期同期 不同统捶,上期全部 將獲取到上期的全部日期榆芦,例如:2017年5月的上年同期是2016年5月柄粹,而2017年5月的上年全部是2016年全年。常用的指標(biāo)包括:上年全部(Previous Year Total)匆绣,上季全部(Previous Year Total)驻右,上月全部(Previous Year Total),上周全部(Previous Week Total)崎淳,計(jì)算如下:
可以看出堪夭,這里對(duì)有關(guān)周的計(jì)算已經(jīng)變得更加復(fù)雜。DAX時(shí)間智能函數(shù)一般實(shí)現(xiàn)到月的級(jí)別拣凹,因?yàn)閷?duì)于周的處理是并沒(méi)有統(tǒng)一的方案的森爽,在國(guó)際上也存在一些標(biāo)準(zhǔn)方案,實(shí)際還是根據(jù)不同公司的業(yè)務(wù)周期或考核周期進(jìn)行嚣镜,會(huì)有實(shí)際差別爬迟。
基于時(shí)間區(qū)間的對(duì)比
將當(dāng)前與過(guò)去的不同時(shí)間區(qū)間進(jìn)行對(duì)比可以得出一些重要的指標(biāo),包括:
- 本年至今 對(duì)比 上年全部菊匿;
- 當(dāng)期 對(duì)比 全年同期 形成同比付呕;
- 當(dāng)期 對(duì)比 上期 形成環(huán)比计福;
- 差異的增長(zhǎng)率。
根據(jù)實(shí)際業(yè)務(wù)的需要還可能產(chǎn)生更多的排列組合徽职,這里僅列舉上述常用指標(biāo)計(jì)算象颖,如下:
總結(jié)
上述內(nèi)容的討論暫未涉及期初期末類,以及并為詳細(xì)展開(kāi)關(guān)于周有關(guān)的計(jì)算姆钉,它們都可以專門來(lái)進(jìn)行討論说订。對(duì)于偏向技術(shù)類的業(yè)務(wù)人員,關(guān)于時(shí)間智能可以注意以下幾點(diǎn)重要內(nèi)容:
- 時(shí)間智能函數(shù)通常作為 CALCULATE 的篩選器參數(shù)
- CALCULATE 的篩選器參數(shù)都是表(ALL及設(shè)置關(guān)系類除外潮瓶,此處不需了解)
- 因此所有時(shí)間智能類函數(shù)都返回表
這其實(shí)在說(shuō)克蚂,例如: LASTDATE( 日期[日期] ) 是時(shí)間智能函數(shù);而時(shí)間智能函數(shù)其實(shí)返回的是表(雖然LASTDATE從字面意思上是一個(gè)值筋讨,由于它是一行一列的表埃叭,因此也可以作為值,但本質(zhì)是表)悉罕。
時(shí)間智能函數(shù)還有一些需要注意的問(wèn)題:
- 時(shí)間智能函數(shù) 不一定必須 配合日期表赤屋,但最好有獨(dú)立的日期表,而不使用系統(tǒng)自帶的
- 日期表應(yīng)該盡量用日期類型的列作為關(guān)系列
案例下載:
鏈接:https://pan.baidu.com/s/1Q-qjFk3CXG-spTnUhe5aNQ
密碼:biw7