最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Power BI之DAX神功:第2卷第12回 計算同比與環(huán)比

2021-10-08 14:07 作者:孫興華zz  | 我要投稿

《火力全開》筆記27.時間智能日期函數(shù)中已經(jīng)對SAMEPERIODLASTYEAR函數(shù)與DATEADD函數(shù)已經(jīng)做過詳細解釋,今天我們主要來處理一下,網(wǎng)友在實際中遇到的問題。

一、SAMEPERIODLASTYEAR函數(shù)【同比】

語法:SAMEPERIODLASTYEAR(日期列)? ?//返回一年以前的同一組日期

表名:Sheet1

如上表所示,最大日期是2021年3月1日

本期(今年):2021/1/1~2021/3/1

同期(去年):2020/1/1~2020/3/1

1.測試

【新建表】表1 = SAMEPERIODLASTYEAR('Sheet1'[日期])

// 這樣就可以得到同比的日期

【度量值】同期 = CALCULATE(SUM(Sheet1[銷售]),SAMEPERIODLASTYEAR('Sheet1'[日期]))

2.回答網(wǎng)友問題

現(xiàn)在我來回答你的問題:

表名:Sheet1

【新建表】表2 = SAMEPERIODLASTYEAR('Sheet1'[日期])

問題就出現(xiàn)在這里,SAMEPERIODLASTYEAR產(chǎn)生的表并不是2020/1/1~2020/3/1的

處理方法如下:

【新建表】表2 = FILTER(SAMEPERIODLASTYEAR('Sheet1'[日期]),'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-2,12,31))

//篩選SAMEPERIODLASTYEAR生成的表中日期大于最大年減2那一年12月31日以后的數(shù)據(jù),最大日期是2021/3/1,這一年是2021年,2021-2=2019年,2019年12月31日以后的數(shù)據(jù)就是2020/1/1~2020/3/1

3.日期有重復怎么辦?

不受影響!《火力全開》中我們已經(jīng)鑒定過了。只有早期版本受限,需要使用VALUES或DISTINCT函數(shù)對多端表日期列去重,目前的PowerBI版本是無需這個步驟的。

據(jù)了解:從PowerBI于2020.4月版本取消了這個限制

問:是不是我就不需要新建日期表了?

答:依據(jù)個人需求而定!假設你想在矩陣行標題上寫星期,日期表還是更方便一些。

4.特殊需求:今年截止目前的數(shù)據(jù)對比去年全部數(shù)據(jù)

表名:Sheet1

如上圖所示,本期是2021/1/1~2021/3/1,同期應該是2020/1/1~2020/3/1

但是,特殊需求,我要使用本期數(shù)據(jù)與同期全年數(shù)據(jù)進行對比

關于網(wǎng)上流傳的利用EDATE函數(shù)和輔助列方式,并不萬能,他的案例可以,換個案例就失效了:

Ps:?EDATE函數(shù)在《火力全開》筆記19.3講過

【新建列】列 = 'Sheet1'[日期]<=EDATE(MAX ('Sheet1'[日期]), -12 ) && 'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-2,12,31)

很明顯,這并不是我們要的結果。

【新建列】列 = 'Sheet1'[日期]<date(year(max('Sheet1'[日期])),1,1) && 'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-2,12,31)

// 我的方法看似爆弱,但是安全且萬能!新建列是行上下文,逐行掃描,小于最大日期所在年的1月1日,且,大于最大日期所在年減掉2年的12月31日的數(shù)據(jù)。是不是最簡單的數(shù)學知識!

【度量值】 同期 = CALCULATE(SUM(Sheet1[銷售]),FILTER('Sheet1','Sheet1'[列]=True))

5.同期會算了,本期怎么算?

上節(jié)課講的年初至今TOTALYTD和DATESYTD這么快就忘記了?

以上處理問題的方法同樣適用于下面這個函數(shù):

二、更靈活的DATEADD函數(shù)(既可以環(huán)比,又可以同比)

DATEADD函數(shù)靈活在哪里?同比和環(huán)比皆可計算!

語法:DATEADD ( <日期列>, <偏移量>, <偏移單位> )

以下表為例:

【新建表】表3 = dateadd('Sheet1'[日期],-1,YEAR)

// 存在同樣的問題,我們使用同樣的方法優(yōu)化

【新建表】表4=FILTER(dateadd('Sheet1'[日期],-1,YEAR),'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-2,12,31))

更靈活的DATEADD體現(xiàn)在兩個方面:

1.特殊情況下的案例

假設:2020年因特殊原因,有好幾個月處于三天打魚兩天曬網(wǎng)的狀態(tài),銷售慘淡,不便做為同比數(shù)據(jù),那就與2019年同期做對比。這就是特殊情況!

本期:2021/1/1~2021/3/1

同期:2019/1/1~2019/3/1

如果我們使用SAMEPERIODLASTYEAR函數(shù):顯然得到的日期是錯誤的!

【新建表】表3 = FILTER(SAMEPERIODLASTYEAR('Sheet1'[日期]),'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-3,12,31) && 'Sheet1'[日期]<date(year(max('Sheet1'[日期]))-1,1,1))

原理:SAMEPERIODLASTYEAR函數(shù)是返回日期列最大日期所在年,上一年的同期數(shù)據(jù),但是在去年以前的數(shù)據(jù)都是完整的,而不是同期的。

這個時候,可以處理,我們再做月份的判斷,讓這張表的月份小于原表中日期列最大日期的月份,但是這相對就麻煩一些了。

現(xiàn)在我們使用Dateadd函數(shù):

【新建表】表4 = FILTER(dateadd('Sheet1'[日期],-2,YEAR),'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-3,12,31))

Ps: 我已經(jīng)提前告訴大家了,這是在特殊情況下的案例,不是每一年都像2020年那樣不平凡。

2.除了年,我們還可以看到季度、月份和天

總銷售=sum(Sheet1[銷售])

上年 = CALCULATE([總銷售],DATEADD('Sheet1'[日期], -1, YEAR ))

上月 = CALCULATE([總銷售],DATEADD('Sheet1'[日期], -1, MONTH )))

上季 = CALCULATE([總銷售],DATEADD('Sheet1'[日期], -1, Quarter))

上一天?= CALCULATE([總銷售],DATEADD('Sheet1'[日期], -1,?Day))

現(xiàn)在,我們以“上月”為例:

【度量值】上月 = CALCULATE([總銷售],DATEADD('Sheet1'[日期], -1, MONTH )))

// 沒有上個月的數(shù)據(jù)肯定是Blank()

很多人做到這一步,不知道怎么算環(huán)比,詳見《DAX神功》第1卷第4回

【度量值】環(huán)比 = if([上月]=BLANK(),BLANK(),DIVIDE([總銷售],[上月])-1)

Ps:關于總計顯示為空的問題已經(jīng)老生常談了,不再贅述。

3.回答網(wǎng)友問題,我只想顯示2021年的環(huán)比

我們以前學過那么多知識,你隨便拿出一樣來就能解決

【度量值】上月 = CALCULATE(CALCULATE([總銷售],DATEADD('Sheet1'[日期], -1, MONTH )),KEEPFILTERS('Sheet1'[日期]>date(2020,12,31)))

為什么2018/1/1~2020/4/1還顯示在矩陣中?

你將矩陣列標題中的【銷售】去掉就OK了

三、除了Calculate之外,TOTAL系列也可以實現(xiàn)同比和環(huán)比計算

上節(jié)課告訴大家,我更習慣用后者

【度量值】今年 = TOTALYTD(sum('Sheet1'[銷售]),'Sheet1'[日期])?

【度量值】去年 = TOTALYTD(SUM(Sheet1[銷售]),FILTER(dateadd('Sheet1'[日期],-1,YEAR),'Sheet1'[日期]>date(year(max('Sheet1'[日期]))-2,12,31)))

上述方法,我們計算的是同比,如果是環(huán)比呢?修改Dateadd的第3參數(shù),修改Total系列函數(shù)名。

特別提示:

關于SAMEPERIODLASTYEAR和DATEADD函數(shù)你還有什么問題,發(fā)稿后3天之內私信我。

我方便出答網(wǎng)友問的文章,時間久了,您的問題與《DAX神功》不具有連續(xù)性時

您的問題就會等到下次講PowerBI時再回答了。。。也許就是2022年了。。。

抓緊時間哦!

《孫興華講PowerBI火力全開》PowerBI必學課程

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

Power BI之DAX神功:第2卷第12回 計算同比與環(huán)比的評論 (共 條)

分享到微博請遵守國家法律
乐亭县| 龙游县| 左云县| 根河市| 清原| 葫芦岛市| 安丘市| 临潭县| 武威市| 孟连| 湟中县| 庄浪县| 怀化市| 芒康县| 渭源县| 英超| 万荣县| 海南省| 汝州市| 修武县| 肇庆市| 芜湖市| 城市| 仙游县| 东乌珠穆沁旗| 子洲县| 鄂州市| 滨海县| 甘谷县| 浪卡子县| 西峡县| 闸北区| 江孜县| 广汉市| 霍山县| 保靖县| 高清| 安新县| 鹤庆县| 岐山县| 长岭县|