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

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

PowerBI之DAX神功:第2卷第4回 不連續(xù)日期情況下計(jì)算移動(dòng)平均值

2021-09-09 11:07 作者:孫興華zz  | 我要投稿

上節(jié)課我們提到,大多數(shù)情況是下面這樣不連續(xù)日期的銷售表,我只刪除了A商品2021/1/3的銷售記錄,咱們假設(shè)2021年1月3日這一天A商品沒人來買。

我們先使用上節(jié)課的度量值,測(cè)試一個(gè)問題:

【度量值】平均銷量 = AVERAGE('銷售表'[銷量])

我們以A商品為例,它沒有2021/1/3的銷售,所以這里就不顯示

【度量值】平均銷量 = AVERAGE('銷售表'[銷量])

這個(gè)度量值的篩選功能,大家應(yīng)該很熟悉

以前我們經(jīng)常用SUM,現(xiàn)在用AVERAGE,只是聚合方法不同,原理相同。

接下來我們回憶一下,上節(jié)課的【近3天移動(dòng)平均3】這個(gè)度量值:

【度量值】近3天移動(dòng)平均3 = CALCULATE([平均銷量],FILTER(all('日期表'),'日期表'[日期]>max('日期表'[日期])-3 && '日期表'[日期]<=MAX('日期表'[日期])))

計(jì)算過程:

1日,1/1=1

2日,(1+2)/2=1.5

3日,(1+2)/2=1.5??

?#因平均銷量根本就沒有第3日,所以第3日的移動(dòng)平均仍然是(1+2)/2=1.5??

4日,(2+4)/2=3? ? ?# 同理

5日,(4+5)/2=4.5? #同理

6日,(4+5+6)/3=5? ??

……………….以此類推


綜上所述,我們的度量值【近3天移動(dòng)平均3】當(dāng)平均銷量為空時(shí),這一天不記做分母

我們反過來說這句話:為什么沒有記錄的這一天不記做分母?

因?yàn)椋骸酒骄N量】在被日期篩選時(shí),就看不到這一天

有些人有業(yè)務(wù)需求,如本案例所示,他們需要將平均銷量為Blank()的看做是0

模擬計(jì)算過程:

1日,1/1=1

2日,(1+2)/2=1.5

3日,(1+2+0)/3=1?

4日,(2+0+4)/3=2?

5日,(0+4+5)/3=3?

6日,(4+5+6)/3=5??

……………..以此類推

思路:做一個(gè)類似【平均銷量】功能的度量值,需要體現(xiàn)出沒有銷售的那一天

小學(xué)2年級(jí)數(shù)學(xué)老師教的:任何數(shù)除以1等于原數(shù)

【度量值】總銷量 = sum('銷售表'[銷量])

【總銷量】這個(gè)度量值與我們剛才【平均銷量】是一樣的,A商品第3日無銷售就被過濾掉了

【度量值】日期表總行數(shù) = COUNTROWS('日期表')

上節(jié)課,我讓大家使用動(dòng)態(tài)方法創(chuàng)建日期表

你的日期表中,起止日期由銷售表日期列決定,且日期表中的日期必然連續(xù)。

無論你A商品第3日是否有銷量,都不會(huì)影響【日期表總行數(shù)】這個(gè)度量值

《DAX神功》 第1卷第4回.常見錯(cuò)誤與處理方法 我們講到如下概念

Blank() / 1 =Blank()

Blank()/Blank()=Blank()

經(jīng)過四則運(yùn)算后的blank()默認(rèn)是0

【度量值】輔助列后的銷量 = SUM('銷售表'[銷量])/COUNTROWS('日期表')


【度量值】近3天移動(dòng)平均6 = CALCULATE(sum('銷售表'[銷量])/COUNTROWS('日期表'),FILTER(all('日期表'),'日期表'[日期]>max('日期表'[日期])-3 && '日期表'[日期]<=MAX('日期表'[日期])))

學(xué)習(xí)知識(shí)和學(xué)習(xí)語言不同的地方,例如英語你知道正確發(fā)音就不用問為什么這么讀了?

但是知識(shí)不行,既然講原理,咱們就講到你休克為止。


大家想一想,如果我這樣寫:

【度量值】日期表總行數(shù)2 = COUNTROWS(Values('銷售表'[日期]))

是不是A商品第3日的被篩選沒了?

為什么?因?yàn)殇N售表中A商品沒有3日的銷售唄。

【度量值】近3天移動(dòng)平均7 = CALCULATE(sum('銷售表'[銷量])/COUNTROWS(Values('銷售表'[日期])),FILTER(all('日期表'),'日期表'[日期]>max('日期表'[日期])-3 && '日期表'[日期]<=MAX('日期表'[日期])))

看上去:是不是等價(jià)我們的【近3天移動(dòng)平均3】

你可能會(huì)想,如果你上來就這樣講,多簡(jiǎn)單,兩種分母情況就全部解決了

你看總計(jì)了嗎?我并不推薦這種方法

你這樣做處理起來很麻煩,如果想實(shí)現(xiàn)這種效果用【近3天移動(dòng)平均3】就好了

但是,度量值【近3天移動(dòng)平均6 】這種寫法,我們別無選擇

有兩種方法處理總計(jì)問題

方法一:讓總計(jì)為空:

【度量值】近3天移動(dòng)平均8 = if(Hasonevalue('日期表'[日期]),[近3天移動(dòng)平均6])

用在圖表上可以,用在矩陣上就奇怪了

方法二:讓明細(xì)行顯示[近3天移動(dòng)平均6],讓總計(jì)行顯示【近3天移動(dòng)平均3】

【度量值】近3天移動(dòng)平均3=CALCULATE([平均銷量],FILTER(all('日期表'),'日期表'[日期]>max('日期表'[日期])-3 && '日期表'[日期]<=MAX('日期表'[日期])))

【度量值】近3天移動(dòng)平均9 = if(Hasonevalue('日期表'[日期]),

[近3天移動(dòng)平均6],CALCULATE([平均銷量],FILTER(all('日期表'),'日期表'[日期]>max('日期表'[日期])-3 && '日期表'[日期]<=MAX('日期表'[日期]))))

Ps: 我將【近3天移動(dòng)平均3】寫到【近3天移動(dòng)平均9】里面,是告訴大家沒必要寫兩個(gè)度量值,擺在這里只是讓大家看清楚,IF的第3參數(shù)是什么。

各位聽眾,你們有沒有一種想哭的感覺?這剛哪到哪呀?最多就三分之一的教程。

為什么《孫興華講PowerBI火力全開》堅(jiān)持不講原理,你們明白嗎?

對(duì)于毫無基礎(chǔ)的人講原理,勸退率99.99%

對(duì)于有基礎(chǔ)的人講原理,勸退率85%以上。

原理,需要有強(qiáng)大的邏輯思維支撐,否則即便今日聽懂,也很難靈活運(yùn)用。

《孫興華講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辦公自動(dòng)化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等

https://www.bilibili.com/read/cv10222110

PowerBI之DAX神功:第2卷第4回 不連續(xù)日期情況下計(jì)算移動(dòng)平均值的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
铁岭县| 广昌县| 河曲县| 祁东县| 浦北县| 山阳县| 西昌市| 博爱县| 化德县| 麻栗坡县| 灌阳县| 长乐市| 兴隆县| 克拉玛依市| 乐昌市| 响水县| 台南市| 上蔡县| 无锡市| 陇南市| 博兴县| 明水县| 景泰县| 确山县| 定安县| 四川省| 隆化县| 洪洞县| 兖州市| 岐山县| 肇东市| 汕头市| 伊吾县| 新沂市| 华蓥市| 正定县| 卢湾区| 尉氏县| 普定县| 彭阳县| 静海县|