沖沖沖學DAX

簡單篩選選函數(shù)


和下面的效果一樣


IF ( ISBLANK ( Sales[Quantity] ), 1, Sales[Quantity] )??? 用其檢測是否為空

IFERROR ( SQRT ( Test[Omega] ), BLANK() )???? 有錯誤用空值替代

IF ( Sales[Quantity] = 0, BLANK(), Sales[Sales Amount] / Sales[Quantity] )?? 簡單的條件判斷語句

DIVIDE ( Sales[Sales Amount], Sales[Quantity] )??? 安全除法,若被除數(shù)為0歼秽,則返回0

Sales[Gross Margin] = Sales[Sales Amount] - Sales[Total Product Cost]? 直接相減?? 計算列

[Total Sales] := SUM ( Sales[Sales Amount] )?? 度量值

SUMX ( Sales, Sales[Order Quantity] * Sales[Unit Price] )? 參數(shù)( 表潘鲫,表達式)余寥。

COUNTROWS ( Table ) = COUNTA ( Table[Column] ) + COUNTBLANK ( Table[Column] )? 非空+?? 空等于總行數(shù)

DISTINCTCOUNT ( Table[Column] ) = COUNTROWS ( DISTINCT ( Table[Column] ) )

SUMX (

? ? ? ? ? ? ? ? ? ? ? ? ? ?? FILTER ( Sales, Sales[Unit Price] > 10 ),

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Sales[Sales Amount]

) ? ? ? ? ? ? ? ? ? ?? 計算上下文

Sales[List Amount] = Sales[Order Quantity] * Products[List Price]????? 兩表建立關系

Sales[List Amount] = Sales[Order Quantity] * RELATED ( Products[List Price] )? 沒有建立關系則有這個函數(shù)

Products[Number Orders] = COUNTROWS ( RELATEDTABLE ( Sales ) )

Products[List Amount] =

SUMX (

RELATEDTABLE ( Sales ),

Sales[Order Quantity] * Products[List Price]

) ? 好像是兩表之間是多對一的關系的話就用RELATEDTABLE


Products[Price Ranking] =

COUNTROWS (

FILTER (

Products,

Products[List Price] > EARLIER ( Products[List Price] )

)

) ?? EARLIER表示一個變動的參數(shù)怎爵,表示在當前的自己之前的數(shù),語句意思是計算價格排名啤呼,計算在產品表里面產品的價格比自己高的數(shù)的個數(shù)卧秘,計算行多少就是有多少高出自己。

CALCULATE (表達式? 條件官扣,條件? ...)

[Sales2006] :=

????????????? CALCULATE (

????????????????????????????????????????? SUM ( Sales[Sales Amount] ),

?????????????????????????????????????????? Order Date[Year] = 2006

)



增加篩選條件翅敌,更顆粒化的選擇數(shù)據(jù)

[Sales2006] :=

CALCULATE (

SUM ( Sales[Sales Amount] ),

FILTER ( ALL ( Order Date[Year] ), Order Date[Year] = 2006 )

)

VALUES
返回唯一值惕蹄,和distinct差不多

[Sales2006if Selected] :=

CALCULATE (

SUM ( Sales[Sales Amount] ),

FILTER ( VALUES ( Order Date[Year] ), Order Date[Year] = 2006 )

)



區(qū)別之處蚯涮,是否計算空值

Num Of Products := COUNTROWS ( Products )

Num Of Categories := COUNTROWS ( DISTINCT ( Categories[Product Category Name] ) )

Num Of Categories Including Missing := COUNTROWS ( VALUES ( Categories[Product Category Name] ) )


簡單時間智能函數(shù)

[Sales] := SUM( Sales[Sales Amount] )

[Sales MTD] := TOTALMTD ( [Sales], 'Date'[Date] )? 月累計至今的銷售額

[Sales QTD] := TOTALQTD ( [Sales], 'Date'[Date] )? 季度累計

[Sales YTD] := TOTALYTD ( [Sales], 'Date'[Date] )? 年累計

也可以這樣:

[Sales MTD] := CALCULATE ( [Sales], DATESMTD ( 'Date'[Date] ) )

[Sales QTD] := CALCULATE ( [Sales], DATESQTD ( 'Date'[Date] ) )

[Sales YTD] := CALCULATE ( [Sales], DATESYTD ( 'Date'[Date] ) )


但更靈活:計算上個周期的數(shù)值(周期自定)

[PY Sales] := CALCULATE ( [Sales], DATEADD ( 'Date'[Date], -1, YEAR ) )

[PQ Sales] := CALCULATE ( [Sales], DATEADD ( 'Date'[Date], -1, QUARTER ) )

[PM Sales] := CALCULATE ( [Sales], DATEADD ( 'Date'[Date], -1, MONTH ) )

[PY Sales] := CALCULATE( [Sales], SAMEPERIODLASTYEAR( 'Date'[Date] ) )?? 依然性的

[PY Total Sales] := CALCULATE( [Sales], PARALLELPERIOD( 'Date'[Date], -1, YEAR ) )? 這個不是按自然年度劃分的,是指過去12個月為一年焊唬,而非去年的現(xiàn)在同期月

[YTD Over Total PY]:= DIVIDE ( [Sales YTD], [PY Total Sales] )??? 恋昼,年累計銷售額占比過去12個月


???????? [PY YTD Sales] :=

CALCULATE (

[Sales],

SAMEPERIODLASTYEAR ( DATESYTD ( 'Date'[Date] ) )

)

[PY YTD Sales] :=

CALCULATE(

[Sales],

DATESYTD ( SAMEPERIODLASTYEAR ( 'Date'[Date] ) )

)


有點復雜了,嵌套了好幾個函數(shù)

[MAT Sales] :=

CALCULATE (

[Sales],

DATESBETWEEN (

'Date'[Date],

NEXTDAY ( SAMEPERIODLASTYEAR ( LASTDATE( 'Date'[Date] ) ) ),

LASTDATE ( 'Date'[Date] )

)

)??
不太適合赶促,搞不懂

Units Last Date := CALCULATE ( SUM ( Inventory[Units Balance] ), LASTDATE ( 'Date'[Date] )

Units Last Non Blank :=

CALCULATE (

SUM ( Inventory[Units Balance] ),

LASTNONBLANK (

'Date'[Date],

CALCULATE ( SUM ( Inventory[Units Balance] ) )

)

)

Sales Road650Red44 :=

CALCULATE (

SUM ( Sales[Sales Amount] ),

Products[Product Name] = "Road-650 Red, 44"

比較不同之處

Sales Only Road650Red44 :=

CALCULATE (

SUM ( Sales[Sales Amount] ),

Products[Product Name] = "Road-650 Red, 44",

ALL ( Products )?


自定義的年累計

[YTD] :=

CALCULATE (

[Original Measure],

FILTER (

ALL ( 'Date' ),

?'Date'[Year] = MAX ( 'Date'[Year] )

&& 'Date'[Date] <= MAX ( 'Date'[Date] )

)

)


有幾個客戶

Unique Customers :=

CALCULATE (

DISTINCTCOUNT ( Customers[Customer Code] ),

Sales

)


統(tǒng)計函數(shù)

移動平均模板

Moving Average X 7 Days :=

AVERAGEX (

DATESINPERIOD (

'Date'[Date],

LASTDATE ( 'Date'[Date] ),

-7,

DAY

),

[Total Amount]

)


更快速的方法

Moving Average 7 Days :=

CALCULATE (

IF (

COUNT ( 'Date'[Date] ) >= 7,

SUM ( Sales[Amount] ) / COUNT ( 'Date'[Date] )

),

FILTER (

ALL ( 'Date'[Date] ),

'Date'[Date] > ( MAX ( 'Date'[Date] ) - 7 )

&& 'Date'[Date] <= MAX ( 'Date'[Date] )

)

)


參數(shù)表

[Sales Amount] :=

IF (

HASONEVALUE ( Scale[Scale] ),

SUM ( Sales[Sales Amount] ) / VALUES ( Scale[Scale] ),

SUM ( Sales[Sales Amount] )

) ? HASONEVALUE 和VALUES合在一起使用液肌,表示選中某一個值


Discounted Sales Amount :=

IF (

HASONEVALUE ( Discounts[Discount Value] ),

[Sales Amount] * ( 1 – VALUES ( Discounts[Discount Value] ) ),

IF (

NOT ( ISFILTERED ( Discounts[Discount] ) ),

[Sales Amount],

BLANK ()

)

)如果啥都沒有選的話就用源值替代

Top Sales Amount :=

IF (

HASONEVALUE ( 'Top'[Top] ),

IF (

RANKX (

ALL ( Sales[Product] ),

[Sales Amount]

) <= VALUES ( 'Top'[Top] ),

[Sales Amount],

BLANK ()

)

) ? 帶參數(shù)表的topN


計算過去12個月的銷售額

[MAT Sales] :=

CALCULATE (

[Sales Amount],

DATESINPERIOD (

'Date'[Date],

LASTDATE ( 'Date'[Date] ),

-1,

YEAR

)

)


多選條件下的排名,帶切片器的那種

[Rank by Brand C] :=

IF (

HASONEVALUE ( Product[Brand] ),

RANKX ( ALLSELECTED ( Product[Brand] ), [Sales Amount] )

)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鸥滨,一起剝皮案震驚了整個濱河市嗦哆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婿滓,老刑警劉巖老速,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凸主,居然都是意外死亡橘券,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旁舰,“玉大人锋华,你說我怎么就攤上這事〖埽” “怎么了毯焕?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長磺樱。 經常有香客問我纳猫,道長竹捉,這世上最難降的妖魔是什么芜辕? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮块差,結果婚禮上物遇,老公的妹妹穿的比我還像新娘。我一直安慰自己憾儒,他們只是感情好询兴,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著起趾,像睡著了一般诗舰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上训裆,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天眶根,我揣著相機與錄音,去河邊找鬼边琉。 笑死属百,一個胖子當著我的面吹牛,可吹牛的內容都是我干的变姨。 我是一名探鬼主播族扰,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼定欧!你這毒婦竟也來了渔呵?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砍鸠,失蹤者是張志新(化名)和其女友劉穎扩氢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爷辱,經...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡录豺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年朦肘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片双饥。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡厚骗,死狀恐怖,靈堂內的尸體忽然破棺而出兢哭,到底是詐尸還是另有隱情,我是刑警寧澤夫嗓,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布迟螺,位于F島的核電站,受9級特大地震影響舍咖,放射性物質發(fā)生泄漏矩父。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一排霉、第九天 我趴在偏房一處隱蔽的房頂上張望窍株。 院中可真熱鬧,春花似錦攻柠、人聲如沸球订。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冒滩。三九已至,卻和暖如春浪谴,著一層夾襖步出監(jiān)牢的瞬間开睡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工苟耻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留篇恒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓凶杖,卻偏偏與公主長得像胁艰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子智蝠,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內容