99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線(xiàn)電話(huà):13121318867

登錄
2018-11-01 閱讀量: 2154
DAX 表達(dá)式

主要用于創(chuàng)建度量列(Measure),度量值是根據(jù)用戶(hù)選擇的Filter和公式,計(jì)算聚合值,DAX表達(dá)式基本上都是引用對(duì)應(yīng)的函數(shù),函數(shù)的執(zhí)行有表級(jí)(Table-Level)上下文和行級(jí)(Row-Level)上下文之別;其交互行為都是通過(guò)表之間的關(guān)系實(shí)現(xiàn)的,用戶(hù)選擇的Filter,會(huì)通過(guò)關(guān)系對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,是PowerBI報(bào)表呈現(xiàn)的數(shù)據(jù)具有動(dòng)態(tài)交互的特性。

一,常用的操作符

在DAX表達(dá)式中,常用的操作符是:

  • 文本使用雙引號(hào)作為界定符,
  • 等號(hào)是“=”號(hào),不等號(hào)是:<>
  • 賦值使用“=”號(hào),
  • 布爾值使用 TRUE()和FALSE()函數(shù),
  • 空值使用BLANK()函數(shù)表示,
  • 集合使用大括號(hào){}表示,例如,包含三個(gè)item的集合: {1,2,3}
  • 字符的連接符號(hào)是:&
  • 邏輯運(yùn)算符號(hào)是:邏輯與是 &&,邏輯或是: ||

二,過(guò)濾函數(shù)

過(guò)濾函數(shù)能夠操作數(shù)據(jù)的上下文,以實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)計(jì)算,功能非常強(qiáng)大。

1,關(guān)聯(lián)函數(shù)

?Related函數(shù)返回跟當(dāng)前的數(shù)據(jù)行有關(guān)系的表的單個(gè)值,

RELATED(related_table[column])

Related函數(shù)要求當(dāng)前表和關(guān)聯(lián)表之間存在關(guān)系(Relationship),當(dāng)前表和關(guān)聯(lián)表之間存在many-to-one的關(guān)系,從關(guān)聯(lián)表中返回單個(gè)值。

Related函數(shù)運(yùn)行在行上下文(row context),因此,只能用于計(jì)算列的表達(dá)式。

示例:表InternetSales_USD和SalesTerritory之間存在關(guān)系,從表SalesTerritory獲取SalesTerritoryCountry的值,并通過(guò)FILTER函數(shù)進(jìn)行過(guò)濾,統(tǒng)計(jì)表InternetSales_USD中字段[SalesAmount_USD]的加和:

= SUMX(FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry]) <>"United States" )  ,'InternetSales_USD'[SalesAmount_USD]) 

RELATEDTABLE用于one-to-many的關(guān)系,用于返回被過(guò)濾的所有數(shù)據(jù)行組成的表。

2,過(guò)濾函數(shù)

Filter函數(shù),返回被過(guò)濾之后的表,是表數(shù)據(jù)的子集:

FILTER(<table>,<filter>)  

通過(guò)過(guò)濾條件,獲取表的子集,過(guò)濾函數(shù)返回的表只能用于計(jì)算。過(guò)濾函數(shù)不是獨(dú)立的,必須嵌入(embedded)到其他函數(shù)中作為一個(gè)表值參數(shù)。

3,計(jì)算函數(shù)

Calculate函數(shù),在過(guò)濾器的上下文中計(jì)算表達(dá)式,返回單個(gè)值:

CALCULATE(<expression>,<filter1>,<filter2>…)  

參數(shù)expression是計(jì)算的表達(dá)式,受到filter參數(shù)的上下文的影響,如果filter參數(shù)改變數(shù)據(jù)的上下文,那么在新的上下文中計(jì)算表達(dá)式。計(jì)算函數(shù)的最大特點(diǎn)是能夠移除過(guò)濾器,在過(guò)濾器參數(shù)列表中,如果一個(gè)數(shù)據(jù)列上存在多個(gè)過(guò)濾器,那么Calculate函數(shù)會(huì)移除前面的過(guò)濾器,而只應(yīng)用當(dāng)前的過(guò)濾器。

對(duì)于Calculate函數(shù)的Filter,有兩種表達(dá)式,一種是布爾表達(dá)式,計(jì)算的結(jié)果是布爾值;一種是只包含一列的表格表達(dá)式,是指計(jì)算該表格相關(guān)聯(lián)的數(shù)據(jù),相當(dāng)于做“相等”過(guò)濾。

示例:在計(jì)算比例關(guān)系時(shí),使用計(jì)算函數(shù)的移除過(guò)濾器的功能:

=( SUM('ResellerSales_USD'[SalesAmount_USD]))    
/CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
,ALL('ResellerSales_USD'))

表達(dá)式中的分母,使用計(jì)算函數(shù),其中,第一個(gè)過(guò)濾器參數(shù)使用ALL過(guò)濾函數(shù),使得sum表達(dá)式統(tǒng)計(jì)所有的數(shù)據(jù)行,這種行為重寫(xiě)對(duì)數(shù)據(jù)表的隱式過(guò)濾器。

4,移除過(guò)濾器

ALL函數(shù)返回表中的所有數(shù)據(jù)行,清理任意過(guò)濾器,用于對(duì)全表執(zhí)行聚合運(yùn)算。ALL函數(shù)主要用于計(jì)算比例關(guān)系,常用于分母中。

ALL( {<table> | <column>)

5,去重函數(shù)

Distinct 返回單列的表,包含無(wú)重復(fù)的值,也就是說(shuō),從表中移除重復(fù)值,只返回列的唯一值。

DISTINCT(<column>) 

6,過(guò)濾器的值

函數(shù)Values返回被過(guò)濾的唯一值,在同一個(gè)表中的其他Column被過(guò)濾,那么返回被過(guò)濾的當(dāng)前Column的唯一值。Values函數(shù)和Distinct函數(shù)很相似,唯一的不同是Values函數(shù)會(huì)返回Unknown,這是因?yàn)殛P(guān)聯(lián)的Table中包含部匹配的數(shù)據(jù)行,和Left Join的右表中包含NULL值很相似。

VALUES(<TableNameOrColumnName>)  

When you use the VALUES function in a context that has been filtered, ?the unique values returned by VALUES are affected by the filter.

結(jié)合CONCATENATEX函數(shù),能夠把所有過(guò)濾器的值連接成字符串。注意,DAX表達(dá)式使用 & 進(jìn)行字符串的連接。

7,探測(cè)直接過(guò)濾(filtered directly)

如果指定的Column被直接過(guò)濾(filtered directly),函數(shù)返回True;當(dāng)同一個(gè)Table中的其他Column被過(guò)濾,切片器(Slicer)中被關(guān)聯(lián)的Column,默認(rèn)設(shè)置是全部直接過(guò)濾,函數(shù)返回True;如果Column上沒(méi)有直接的過(guò)濾,或者同一個(gè)Table中的其他Column被過(guò)濾,或者被有關(guān)系的Table過(guò)濾,函數(shù)返回False。

ISFILTERED(<columnName>)  

直接過(guò)濾器的數(shù)值通過(guò)函數(shù)Filters返回:

FILTERS(<columnName>)

8,探測(cè)關(guān)聯(lián)過(guò)濾

如果同一個(gè)Table中的其他Column被過(guò)濾,或者被有關(guān)系的Table過(guò)濾,函數(shù)返回True

ISCROSSFILTERED(<columnName>)  

9,保持過(guò)濾器

函數(shù) KeepFilters 的作用是保持過(guò)濾器,用于計(jì)算函數(shù)(CALCULATE 和 CALCULATETABLE)中。默認(rèn)情況下,計(jì)算函數(shù)的過(guò)濾器參數(shù)(filter argument)會(huì)對(duì)過(guò)濾表數(shù)據(jù),當(dāng)在相同的字段上設(shè)置過(guò)濾器參數(shù)(filter argument)時(shí),該參數(shù)會(huì)替換已經(jīng)存在的過(guò)濾器;當(dāng)相同的字段上沒(méi)有過(guò)濾器參數(shù)(filter argument)時(shí),已經(jīng)存在的過(guò)濾器不受影響。函數(shù)KeepFilters會(huì)改變計(jì)算函數(shù)的行為,當(dāng)在計(jì)算函數(shù)使用函數(shù)KeepFilters時(shí),表的上下文是過(guò)濾器參數(shù)(filter argument)和已經(jīng)存在的過(guò)濾器的交集,也就是說(shuō),表的上下文同時(shí)受到已經(jīng)存在的過(guò)濾器和計(jì)算函數(shù)的過(guò)濾器參數(shù)(filter argument)的影響。計(jì)算函數(shù)替換已經(jīng)存在的過(guò)濾器,而函數(shù) KeepFilters會(huì)添加已經(jīng)存在的過(guò)濾,求交集。

KEEPFILTERS(<expression>) 
0.0000
3
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子