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

歡迎光臨散文網 會員登陸 & 注冊

Power BI之DAX神功:答網友問08 嵌套使用時間智能函數

2021-10-18 20:46 作者:孫興華zz  | 我要投稿

一、網友提問

答:問題我給您講,被踢群的事沒有辦法。建議您看一下林志穎、金城武、還有心如姐姐主演的電影《學校霸王》,他演的是學校,同時也映射了當時和未來的全球社會。最終告訴我們一個道理,只有自己強大,才會被尊重。

二、大多數時間智能日期函數第1參數可以使用只有日期列的表

表名:Sheet1

因為大多數時間智能日期函數第1參數是日期列,但是,也可以是一個只有日期列的表。如下圖所示:表原本有兩列,我們需要將日期列生成一個表

將一列變成一個表:首先應該想到的是VALUESDISTINCT函數

VALUES與DISTINCT函數的區(qū)別:

詳見《DAX神功》第1卷第9回 基礎表函數之VALUES與DISTINCT函數和空行?

以下三個度量值,結果是等價的:

年初至今1 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD('Sheet1'[日期]))?

年初至今2 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(VALUES('Sheet1'[日期])))

年初至今3 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(DISTINCT('Sheet1'[日期])))

如果我們想鎖定2021年,我們之前的方法是:

年初至今1 = CALCULATE(CALCULATE(SUM(Sheet1[銷售]),DATESYTD('Sheet1'[日期])),'Sheet1'[日期]>date(2020,12,31))

年初至今2 = CALCULATE(CALCULATE(SUM(Sheet1[銷售]),DATESYTD(VALUES('Sheet1'[日期]))),'Sheet1'[日期]>date(2020,12,31))

年初至今3 = CALCULATE(CALCULATE(SUM(Sheet1[銷售]),DATESYTD(DISTINCT('Sheet1'[日期]))),'Sheet1'[日期]>date(2020,12,31))

既然,時間智能函數第1參數可以是一張只有日期列的日期表,我們可以篩選這張表呀?而不用再去套上一個Calculate去篩選內層的calculate

詳見《DAX神功》第1卷第18回 Calculate復雜的篩選條件? 我證明的calculate嵌套也可以是從內向外計算

CALCULATETABLE函數:詳見《火力全開》筆記04

語法:Calculatetable(表,篩選條件)

年初至今1 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD('Sheet1'[日期]))?

年初至今2 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(CALCULATETABLE(VALUES('Sheet1'[日期]))))

年初至今3 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(CALCULATETABLE(DISTINCT('Sheet1'[日期]))))

CALCULATETABLE單獨擺看不出來有什么用處,它的意義在于篩選表:

例如:只看2021年

年初至今1 = CALCULATE(CALCULATE(SUM(Sheet1[銷售]),DATESYTD('Sheet1'[日期])),'Sheet1'[日期] > date(2020,12,31))?

年初至今2 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(CALCULATETABLE(VALUES('Sheet1'[日期]),'Sheet1'[日期] > date(2020,12,31))))

年初至今3 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(CALCULATETABLE(DISTINCT('Sheet1'[日期]),'Sheet1'[日期] > date(2020,12,31))))

三、其實時間智能日期函數也返回一張表

時間智能日期函數也返回一張表,同樣可以做另一個時間智能日期函數的參數,這個問題我們在前面3節(jié)課中已經證明過了。

例如:Datesytd和Sameperiodlastyear函數

以下表為例:

表名:Sheet1

表1=DATESYTD('Sheet1'[日期])?

表2 = SAMEPERIODLASTYEAR(DATESYTD('Sheet1'[日期]))?

Ps: 其實就等同于:根據本期找到同期

表3 = SAMEPERIODLASTYEAR('Sheet1'[日期])?

表4 = DATESYTD(SAMEPERIODLASTYEAR('Sheet1'[日期]))?

Ps: 今年以前的全部數據中,獲取年初至今就是今年的同期數據

所以,表2和表4做calculate的篩選器結果是相同的

同比1 = CALCULATE(SUM(Sheet1[銷售]),SAMEPERIODLASTYEAR(DATESYTD('Sheet1'[日期])))

同比2 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD(SAMEPERIODLASTYEAR('Sheet1'[日期])))

四、還有一種更奇葩的嵌套

年初至今 = CALCULATE(SUM(Sheet1[銷售]),DATESYTD('Sheet1'[日期]))

同比3 = CALCULATE([年初至今],SAMEPERIODLASTYEAR('Sheet1'[日期]))

Ps: 先得到年初至今,求年初至今的同期和我們直接求同期的結果是一樣的

同比4 = CALCULATE([同比3],DATESYTD('Sheet1'[日期]))

Ps: 當你用同比3做計算器,年初至今做篩選條件時,同比1=同比3=同比4

總結:這些嵌套理解就可以了,實際工作中如果沒有必要盡量不用,化繁為簡才是王道。

勸:三思而后行!但是:相離莫相忘,且行且珍惜

《孫興華講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函數)、PowerQuery(M函數)、Python辦公自動化、Python爬蟲、Python數據分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等

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

Power BI之DAX神功:答網友問08 嵌套使用時間智能函數的評論 (共 條)

分享到微博請遵守國家法律
集安市| 庄河市| 迭部县| 汪清县| 翼城县| 汕头市| 巴楚县| 濮阳县| 额敏县| 祁阳县| 嘉定区| 承德市| 泌阳县| 融水| 辛集市| 固原市| 上栗县| 赤城县| 金寨县| 本溪| 滕州市| 万安县| 嘉禾县| 平昌县| 灵武市| 德兴市| 高唐县| 北海市| 辽阳市| 漳州市| 西乡县| 蚌埠市| 武功县| 金塔县| 青海省| 明星| 孟村| 陈巴尔虎旗| 阜新| 招远市| 绥棱县|