版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章數(shù)據(jù)分析表達(dá)式數(shù)據(jù)分析表達(dá)式(DataAnalysisExpressions,DAX)是一個函數(shù)和運(yùn)算符庫,這些函數(shù)和運(yùn)算符可用便在MicrosoftSQLServerAnalysisServices、Excel中的PowerPivot以及PowerBI中創(chuàng)建公式和表達(dá)式。本章主要內(nèi)容:DAX基礎(chǔ)DAX函數(shù)4.1DAX基礎(chǔ)DAX也稱公式語言,它與Java、Python、C++等計(jì)算機(jī)程序設(shè)計(jì)語言不同,它通過公式來完成計(jì)算。DAX與Excel的公式非常相似,而且大部分函數(shù)都是通用的。本節(jié)主要內(nèi)容:語法規(guī)則運(yùn)算符數(shù)據(jù)類型上下文語法規(guī)則是DAX公式的編寫規(guī)則。一個DAX公式通常包含度量值、函數(shù)、運(yùn)算符、列引用等組成,如圖所示。度量值度量值類似于程序設(shè)計(jì)語言中的全局變量,是一個標(biāo)量,通常用于表示單個的值。例如,求和、求平均值、求最大值等結(jié)果為單個值,可定義為度量值。度量值可在報(bào)表任意位置使用。在PowerBIDesktop中,可用公式來創(chuàng)建度量值、列和表,所以等號左側(cè)可以是新建的度量值、列或表的名稱。用公式創(chuàng)建的列和表可分別稱為計(jì)算列和計(jì)算表。等號等號表示公式的開始,其后是完成各種計(jì)算的表達(dá)式。4.1.1 語法規(guī)則函數(shù)PowerBIDesktop提供了大量的內(nèi)置函數(shù),這些函數(shù)通常用于在數(shù)據(jù)表中返回單個值,或者返回包含單列或多列的表。運(yùn)算符運(yùn)算符完成相應(yīng)計(jì)算。列引用在公式中除了列引用,還涉及度量值和表的引用。列和度量值在引用時(shí),名稱必須放在方括號中。在引用表時(shí),表名稱包含空格或其他特殊符號時(shí),必須將名稱放在單引號中,否則可以直接使用名稱。引用列時(shí),如果列不屬于當(dāng)前數(shù)據(jù)表,則必須用數(shù)據(jù)表名稱限定列,例如,“'銷售數(shù)據(jù)'[銷量]”或者“銷售數(shù)據(jù)[銷量]”。使用數(shù)據(jù)表名稱限定列名也稱為完全限定,建議在公式中都使用完全限定,避免產(chǎn)生誤解。DAX公式與Excel公式類似,兩者主要區(qū)別如下。Excel公式可以直接引用單個的單元格或某個范圍的多個單元格。PowerBI公式只能直接引用完整的數(shù)據(jù)表或數(shù)據(jù)列。通過篩選器和函數(shù),可獲得列的一部分、列中的唯一值或者表的一部分的引用。DAX公式與Excel支持的數(shù)據(jù)類型并非完全相同。通常,DAX提供的數(shù)據(jù)類型比Excel多,在導(dǎo)入數(shù)據(jù)時(shí)DAX會對某些數(shù)據(jù)執(zhí)行隱式類型轉(zhuǎn)換。DAX公式還具有下列特點(diǎn)。DAX公式不能修改表中原有的數(shù)據(jù),只能通過新建列操作為表添加數(shù)據(jù)。可通過DAX公式創(chuàng)建計(jì)算列、度量值和表,但不能創(chuàng)建計(jì)算行。在DAX公式中,不限制函數(shù)的嵌套調(diào)用。DAX提供了返回表的函數(shù)。DAX支持4種運(yùn)算符:算術(shù)運(yùn)算符、比較運(yùn)算符、文本串聯(lián)運(yùn)算符和邏輯運(yùn)算符。1.算術(shù)運(yùn)算符算術(shù)運(yùn)算符用于執(zhí)行算術(shù)運(yùn)算,運(yùn)算結(jié)果為數(shù)值。符號說明舉例+加法運(yùn)算2+3-減法運(yùn)算或負(fù)數(shù)符號2-3*乘法運(yùn)算2*3/除法運(yùn)算2/3^求冪2^34.1.2 運(yùn)算符2.比較運(yùn)算符比較運(yùn)算符用于比較操作數(shù)關(guān)系,運(yùn)算結(jié)果為邏輯值True或False。符號說明舉例=等于[語文]=60>
大于[語文]>60<
小于[語文]<60>=大于或等于[語文]>=60<=小于或等于[語文]<=60<>
不等于[語文]<>603.文本串聯(lián)運(yùn)算符文本串聯(lián)運(yùn)算符只有一個:&,用于將兩個字符串連接成一個字符串。例如,"abc"&"123",結(jié)果為"abc123"4.邏輯運(yùn)算符邏輯運(yùn)算符用于執(zhí)行邏輯運(yùn)算,運(yùn)算結(jié)果為邏輯值True或False。符號說明舉例&&邏輯與,兩個操作數(shù)都為True時(shí),運(yùn)算結(jié)果為True,否則為False[語文]=60&&[數(shù)學(xué)]>60||邏輯或,兩個操作數(shù)都為False時(shí),運(yùn)算結(jié)果為False,否則為True[語文]>60||[數(shù)學(xué)]>604.1.3 數(shù)據(jù)類型1.數(shù)字類型PowerBIDesktop支持三種數(shù)字類型:小數(shù)、定點(diǎn)小數(shù)和整數(shù)。 小數(shù):表示64位(8字節(jié))浮點(diǎn)數(shù)??梢蕴幚韽?1.79E+308到-2.23E-308的負(fù)數(shù)、0,以及從2.23E-308到1.79E+308的正數(shù)。定點(diǎn)小數(shù):小數(shù)點(diǎn)位置固定,小數(shù)點(diǎn)后固定有四位有效數(shù)字?jǐn)?shù),最多19位有效數(shù)字。它可以表示的值范圍為-922,337,203,685,477.5807到+922,337,203,685,477.5807。整數(shù):表示64位(8字節(jié))整數(shù)值。最多允許19位有效數(shù)字,取值范圍從-,223,372,036,854,775,808到9,223,372,036,854,775,807。2.日期時(shí)間類型PowerBIDesktop支持查詢視圖中的五種日期時(shí)間數(shù)據(jù)類型,以及報(bào)表視圖和模型中的三種日期時(shí)間數(shù)據(jù)類型。日期/時(shí)間:表示日期和時(shí)間值。日期/時(shí)間值以小數(shù)類型進(jìn)行存儲,可以在這兩種類型之間進(jìn)行轉(zhuǎn)換。日期的時(shí)間部分存儲為1/300秒(3.33ms)的整數(shù)倍的分?jǐn)?shù)。支持1900年和9999年之間的日期。日期:僅表示日期,沒有時(shí)間部分。時(shí)間:僅表示時(shí)間,沒有日期部分。日期/時(shí)間/時(shí)區(qū):表示UTC日期/時(shí)間。數(shù)據(jù)加載后,會被轉(zhuǎn)換為日期/時(shí)間類型。持續(xù)時(shí)間:表示時(shí)間的長度。數(shù)據(jù)加載后,會被轉(zhuǎn)換為十進(jìn)制數(shù)類型??蓪⑵渑c日期/時(shí)間字段執(zhí)行加法和減法運(yùn)算。3.文本類型文本類型為Unicode字符串,其最大字符串長度為268,435,456個Unicode字符或536,870,912字節(jié)。4.True/False類型True/False類型表示邏輯值的True或False。5.空值/Null類型空值/Null類型可在DAX中表示和替代SQL中的Null??捎肂LANK函數(shù)創(chuàng)建空值,也可用ISBLANK邏輯函數(shù)測試空值。4.1.4 上下文上下文(Context)在眾多高級程序設(shè)計(jì)語言中使用,它代表了變量、函數(shù)、程序的運(yùn)行環(huán)境。上下文也是DAX的一個重要概念。在DAX中,上下文是公式的計(jì)算環(huán)境。DAX公式中有兩種上下文:行上下文和篩選上下文。1.行上下文行上下文可以理解為當(dāng)前記錄(當(dāng)前行)。從數(shù)據(jù)源獲取的各種數(shù)據(jù)后,PowerBIDesktop將其以關(guān)系表(二維表)的形式存儲。在計(jì)算函數(shù)時(shí),通常都會應(yīng)用某一行中某個列的數(shù)據(jù),此時(shí)的行就是當(dāng)前計(jì)算的行上下文。2.篩選上下文篩選上下文可以理解為作用于表的篩選條件(篩選器),函數(shù)應(yīng)用篩選出的數(shù)據(jù)(單個或多個值)完成計(jì)算。4.2 DAX函數(shù)函數(shù)是通過使用特定值、調(diào)用參數(shù),并按特定順序或結(jié)構(gòu)來執(zhí)行計(jì)算的預(yù)定義公式。函數(shù)參數(shù)可以是其他函數(shù)、另一個公式、表達(dá)式、列引用、數(shù)字、文本、邏輯值(如True或False)或者常量。本節(jié)主要內(nèi)容:DAX函數(shù)概述聚合函數(shù) 邏輯函數(shù) 數(shù)學(xué)函數(shù) 文本函數(shù) 信息函數(shù) 日期和時(shí)間函數(shù)時(shí)間智能函數(shù)篩選器函數(shù)4.2.1 DAX函數(shù)概述DAX中的函數(shù)按類型可分為:日期和時(shí)間函數(shù)、時(shí)間智能函數(shù)、信息函數(shù)、邏輯函數(shù)、數(shù)學(xué)函數(shù)、統(tǒng)計(jì)函數(shù)、文本函數(shù)等。DAX函數(shù)具有下列特點(diǎn)。DAX函數(shù)始終引用整列或整個表。如果僅想使用表或列中的某個特定值,則需為公式添加篩選器。在需要逐行自定義計(jì)算時(shí),DAX允許將當(dāng)前行的值或關(guān)聯(lián)值作為參數(shù)。DAX函數(shù)可返回計(jì)算表,計(jì)算表可作為其他函數(shù)的參數(shù)。DAX提供了各種時(shí)間智能函數(shù)。這些函數(shù)可用于定義或選擇日期范圍,以便執(zhí)行動態(tài)計(jì)算。DAX對內(nèi)置函數(shù)的參數(shù)名稱進(jìn)行了規(guī)范化參數(shù)說明expression表示返回單個標(biāo)量值的DAX表達(dá)式,表達(dá)式根據(jù)上下文確定計(jì)算次數(shù)。value表示返回單個標(biāo)量值的DAX表達(dá)式,其中,表達(dá)式將在執(zhí)行所有其他操作之前僅計(jì)算一次。table表示返回?cái)?shù)據(jù)表的DAX表達(dá)式。tableName使用標(biāo)準(zhǔn)DAX語法的表名稱,不能是表達(dá)式。columnName使用標(biāo)準(zhǔn)DAX語法的列名稱,通常是完全限定的名稱,不能是表達(dá)式。name一個字符串常量,用于提供新對象的名稱。order用于確定排序順序的枚舉常量。ties用于確定如何處理等同值的枚舉常量。4.2.2聚合函數(shù)AVERAGE(<column>)計(jì)算列中所有數(shù)字的平均值。如果列中包含文本,則不執(zhí)行計(jì)算,函數(shù)返回空值。列中包含空單元或邏輯值時(shí),則忽略這些值,不對行進(jìn)行計(jì)數(shù)。值為0納入計(jì)算,對行計(jì)數(shù)。例如:=AVERAGE('成績數(shù)據(jù)'[語文])AVERAGEA(<column>)計(jì)算列中所有值的平均值。列中的非數(shù)字值處理規(guī)則為:計(jì)算結(jié)果為True的值作為1計(jì)數(shù),計(jì)算結(jié)果為False的值、包含非數(shù)字文本的值、空文本("")和空單元均作為0計(jì)數(shù)。例如:=AVERAGEA('成績數(shù)據(jù)'[語文])AVERAGEX(<table>,<expression>)計(jì)算表中表達(dá)式計(jì)算結(jié)果的平均值。例如:=AVERAGEX('成績數(shù)據(jù)',[語文]+[數(shù)學(xué)]+[外語])COUNT(<column>)對列中的數(shù)字和日期進(jìn)行計(jì)數(shù)。如果單元包含不能轉(zhuǎn)換成數(shù)字的文本,則不對該行進(jìn)行計(jì)數(shù)。如果列中沒有可計(jì)數(shù)的單元,函數(shù)返回空值。例如:=COUNT('成績數(shù)據(jù)'[語文])COUNTA(<column>)對列中非空單元進(jìn)行計(jì)數(shù)。例如:=COUNTA(('成績數(shù)據(jù)'[語文])COUNTAX(<table>,<expression>)對表中的每一行計(jì)算表達(dá)式,返回表達(dá)式計(jì)算結(jié)果不為空的數(shù)目。例如:=COUNTAX('成績數(shù)據(jù)',[專業(yè)代碼])COUNTROWS(<table>)計(jì)算指定表的行數(shù)。例如:=COUNTROWS('成績數(shù)據(jù)')MAX(<column>)返回?cái)?shù)值列中的最大值。例如:=MAX([語文])MIN(<column>)返回?cái)?shù)值列中的最小值。例如:=MIN([語文])RANK.EQ(<value>,<columnName>[,<order>])計(jì)算value在列columnName中的排名。order指定排名方式,可省略。order為0(默認(rèn))時(shí),列中最大值排名為1;order為1時(shí),列中最小值排名為1。例如,創(chuàng)建語文成績的排名列。=RANK.EQ('成績數(shù)據(jù)'[語文],'成績數(shù)據(jù)'[語文])RANKX(<table>,<expression>[,<value>[,<order>[,<ties>]]])計(jì)算表table中表達(dá)式expression計(jì)算結(jié)果在value中的排名。參數(shù)order與RANK.EQ()函數(shù)中一致。參數(shù)ties為skip(默認(rèn))時(shí),相同排名要計(jì)數(shù),例如,有5個值排名第10,則下一個排名為15(10+5)。參數(shù)ties為Dense時(shí),相同排名只計(jì)數(shù)1次,例如,有5個值排名第10,則下一個排名為11。例如:=RANKX('成績數(shù)據(jù)','成績數(shù)據(jù)'[外語]+'成績數(shù)據(jù)'[數(shù)學(xué)]+'成績數(shù)據(jù)'[語文])SUM(<column>)對列中的數(shù)值進(jìn)行求和。例如:=SUM('銷售數(shù)據(jù)'[銷量])SUMMARIZE(<table>,<groupBy_columnName>[,<groupBy_columnName>]…[,<name>,<expression>]…)對表table中的數(shù)據(jù)按分組列g(shù)roupBy_columnName計(jì)算表達(dá)式expression,計(jì)算結(jié)果作為列name的值,返回的表包含分組列和計(jì)算結(jié)果列??梢杂卸鄠€分組列。計(jì)算表達(dá)式expression也可有多個,每個表達(dá)式一個名稱name。4.2.3邏輯函數(shù)AND(<logical1>,<logical2>)對兩個邏輯值計(jì)算邏輯與。例如:=AND(AVERAGE('成績數(shù)據(jù)'[語文])>60,AVERAGE('成績數(shù)據(jù)'[數(shù)學(xué)])>60)NOT(<logical>)對邏輯值取反。例如:=NOT(AVERAGE('成績數(shù)據(jù)'[語文])>60)OR(<logical1>,<logical2>)對兩個邏輯值計(jì)算邏輯或。例如:=OR(AVERAGE('成績數(shù)據(jù)'[語文])>60,AVERAGE('成績數(shù)據(jù)'[數(shù)學(xué)])>60)TRUE()返回邏輯值True。例如:=TRUE()FALSE()返回邏輯值False。例如:=FALSE()IF(logical_test>,<value_if_true>,value_if_false)如果條件logical_test為True,則返回值value_if_true;否則返回值value_if_false。例如:=IF([成績]>55,"合格","不合格")IFERROR(value,value_if_error)在計(jì)算value發(fā)生錯誤時(shí),函數(shù)返回value_if_error的值,否則返回value的值。例如:=IFERROR([成績]>55,"出錯")SWITCH(<expression>,<value>,<result>[,<value>,<result>]…[,<else>])計(jì)算表達(dá)式expression,計(jì)算結(jié)果與某個value匹配時(shí),對應(yīng)的result作為函數(shù)返回值。如果沒有值與計(jì)算結(jié)果匹配,則else作為函數(shù)返回值。例如:=SWITCH([weekday],1,"周一",2,"周二",3,"周三",4,"周四",5,"周五",6,"周六",7,"周日","非法數(shù)")4.2.4數(shù)學(xué)函數(shù)ABS(<number>)求number的絕對值。例如:=ABS([銷售量]-100)CEILING(<number>,<significance>)將數(shù)字number向上舍入到最接近的整數(shù)或基數(shù)significance的最接近倍數(shù)。例如,下面的表達(dá)式將單價(jià)舍入為整數(shù)。=CEILING([單價(jià)],1)FLOOR(<number>,<significance>)將數(shù)字number向下舍入到最接近的整數(shù)或基數(shù)significance的最接近倍數(shù)。例如:=CEILING([單價(jià)],0.5)。INT(<number>)將數(shù)字number向下舍入到最接近的整數(shù)。例如,下面的表達(dá)式返回-5。=INT(-4.3)TRUNC(<number>)返回?cái)?shù)字的整數(shù)部分。例如,下面的表達(dá)式返回-4。=TRUNC(-4.3)RAND()返回大于或等于0且小于1的隨機(jī)數(shù)字。例如:=RAND()RANDBETWEEN(<bottom>,<top>)返回指定范圍內(nèi)的隨機(jī)數(shù)字。例如,返回1和10之間的隨機(jī)數(shù)字。=RANDBETWEEN(1,10)ROUND(<number>,<num_digits>)將數(shù)字舍入到指定的位數(shù)。如果num_digits大于0,則將數(shù)字舍入到指定的小數(shù)位數(shù)。如果num_digits為0,則將數(shù)字舍入到最接近的整數(shù)。如果num_digits小于0,則將數(shù)字向小數(shù)點(diǎn)左側(cè)舍入。例如,下面的表達(dá)式返回3.3。=ROUND(3.25,1)例如,下面的表達(dá)式返回30。=ROUND(32.5,-1)4.2.5文本函數(shù)BLANK()返回一個空值。例如:=BLANK()EXACT(<text1>,<text2>)比較兩個文本字符串;如果它們完全相同則返回True,否則返回False。EXACT區(qū)分大小寫但忽略格式上的差異。例如:=EXACT("ab","xABC")FIND(<find_text>,<within_text>[,[<start_num>][,<NotFoundValue>]])在字符串within_text中start_num指定位置開始查找find_text最先出現(xiàn)的位置。start_num省略時(shí),從第1個字符開始查找。NotFoundValue指定未找到時(shí)的返回值,默認(rèn)為空值。例如:=FIND("a","blankabc")LEFT(<text>,<num_chars>)從文本字符串的開頭返回指定數(shù)目的字符。例如:=LEFT("abcd",3)RIGHT(<text>,<num_chars>)從文本字符串的末尾返回指定數(shù)目的字符。=RIGHT("abcd",3)MID(<text>,<start_num>,<num_chars>)根據(jù)給出的開始位置start_num和長度num_chars,從文本字符串text的中間返回字符串。例如:=MID("abcdef",2,3)4.2.6信息函數(shù)CONTAINS(<table>,<columnName>,<value>[,<columnName>,<value>]…)如果在表table的列columnName中包含value,則函數(shù)返回True,否則返回False。例如:=CONTAINS('成績數(shù)據(jù)','成績數(shù)據(jù)'[專業(yè)代號],306003)ISBLANK(<value>)如果值value為空白,則返回True,否則返回False。=ISBLANK([度量值2])ISNUMBER(<value>)如果值value為數(shù)字,則返回True,否則返回False。=ISNUMBER([度量值2])ISTEXT(<value>)如果值value為文本,則返回True,否則返回False。=ISTEXT([度量值2])LOOKUPVALUE(<result_column>,<search_column>,<search_value>…)在search_column中查找search_value,如果找到匹配值,則返回該行中result_column列的值;沒有找到匹配值,則返回空值。例如,返回總成績排名第3的專業(yè)代碼:=LOOKUPVALUE('成績數(shù)據(jù)'[專業(yè)代號],'成績數(shù)據(jù)'[總成績排名],3)4.2.7日期和時(shí)間函數(shù)DATE(<year>,<month>,<day>)用給定的整數(shù)表示的年、月、日創(chuàng)建日期,返回datetime格式的值。year值在0到99之間時(shí),會加上1900作為年份值,例如DATE(90,1,1)返回日期為“1990年1月1日”。month超出月份有效數(shù)字1到12范圍時(shí),會以12為基數(shù)取模,并加減年份,例如,下面的表達(dá)式返回日期為“2017年11月1日。=DATE(2018,-1,1)例如,下面的表達(dá)式返回日期為“2019年2月1日”。=DATE(2018,14,1)類似地,如果參數(shù)day超過了指定月份日的有效范圍,會加減月份來獲得正確日期。例如,下面的表達(dá)式返回日期為“2019年1月30日”。=DATE(2018,14,-1)DATEVALUE(date_text)將文本形式的日期轉(zhuǎn)換為日期時(shí)間格式的日期。例如,=DATEVALUE("08/2/17")NOW()返回當(dāng)前日期時(shí)間。例如:=NOW()TODAY()返回當(dāng)前日期。例如:=TODAY()YEAR(<date>)返回日期中的以4位整數(shù)表示的年份。例如:=YEAR(NOW())MONTH(<datetime>)返回日期中的月份,1到12內(nèi)的數(shù)字。例如:=MONTH(NOW())DAY(<date>)返回日期中的日,1到31內(nèi)的數(shù)字。例如:=DAY(NOW())HOUR(<datetime>)返回時(shí)間中的小時(shí),0到23內(nèi)的數(shù)字。例如:=HOUR(NOW())MINUTE(<datetime>)返回時(shí)間中的分鐘,0到59內(nèi)的數(shù)字。例如:=MINUTE(NOW())SECOND(<time>)返回時(shí)間中的秒,0到59內(nèi)的數(shù)字。例如:=SECOND(NOW())TIME(hour,minute,second)將作為數(shù)字提供的小時(shí)、分鐘和秒鐘轉(zhuǎn)換為datetime格式的時(shí)間,默認(rèn)日期為“1899年12月30日”。例如,下面的表達(dá)式返回的日期時(shí)間為“1899年12月30日13:04:50”。=TIME(13,4,50)TIMEVALUE(time_text)將文本格式的時(shí)間轉(zhuǎn)換為datetime格式的時(shí)間,默認(rèn)日期為“1899年12月30日”。例如,下面的表達(dá)式返回的日期時(shí)間為“1899年12月30日13:04:50”。=TIMEVALUE("13:04:50")WEEKDAY(<date>,<return_type>)返回日期是星期幾。return_type為1(默認(rèn))時(shí),星期日為1,星期六為7;return_type為2時(shí),星期一為1,星期日為7;return_type為3時(shí),星期日為0,星期六為6。例如:=WEEKDAY(NOW(),2)WEEKNUM(<date>,<return_type>)返回日期是一年中的第幾周。return_type為1(默認(rèn))時(shí),一周從星期日開始;return_type為2時(shí),一周從星期一開始。例如:=WEEKNUM(NOW(),2)EDATE(<start_date>,<months>)返回指定日期start_date加上months個月份的日期。參數(shù)start_date可以是datetime或文本格式的日期。months為整數(shù),不是整數(shù)時(shí)只取整數(shù)部分(截?cái)嗳≌@?,下面的表達(dá)式返回日期為“2017年7月5日”。=EDATE("2017-4-5",3)YEARFRAC(<start_date>,<end_date>)計(jì)算兩個日期之間的天數(shù)在一年中占的比例,返回小數(shù)。例如,下面的表達(dá)式返回0.18。=YEARFRAC("2017/3/11","2017/5/15")4.2.8時(shí)間智能函數(shù)CLOSINGBALANCEMONTH(<expression>,<dates>[,<filter>])對dates指定的日期列中每月最后一個日期計(jì)算表達(dá)式expression。例如,計(jì)算月末銷售金額。=CLOSINGBALANCEMONTH(SUMX('銷售數(shù)據(jù)','銷售數(shù)據(jù)'[銷量]*'銷售數(shù)據(jù)'[單價(jià)]),'銷售數(shù)據(jù)'[日期])CLOSINGBALANCEQUARTER(<expression>,<dates>[,<filter>])對dates指定的日期列中每季度最后一個日期計(jì)算表達(dá)式expression。例如:=CLOSINGBALANCEQUARTER(SUMX('銷售數(shù)據(jù)','銷售數(shù)據(jù)'[銷量]*'銷售數(shù)據(jù)'[單價(jià)]),'銷售數(shù)據(jù)'[日期])CLOSINGBALANCEYEAR(<expression>,<dates>[,<filter>])對dates指定的日期列中每年最后一個日期計(jì)算表達(dá)式expression。例如:=CLOSINGBALANCEYEAR(SUMX('銷售數(shù)據(jù)','銷售數(shù)據(jù)'[銷量]*'銷售數(shù)據(jù)'[單價(jià)]),'銷售數(shù)據(jù)'[日期])DATEADD(<dates>,<number>,<interval>)Dates為包含日期的列,number為增加的值。interval為增加類型,可以是year(年)、quarter(季度)、month(月)、day(日)。函數(shù)對指定列中的每一個日期按interval指定的類型加上number,獲得新日期。新日期在dates列包含的日期范圍內(nèi)的,則出現(xiàn)在返回的表中。例如,按月份加3生成新表。=DATEADD('日期表'[日期],3,MONTH)DATESBETWEEN(<dates>,<start_date>,<end_date>)返回一個表,從指定日期列dates中返回在start_date和end_date范圍內(nèi)的日期。例如:=DATESBETWEEN('日期表'[日期],"2018/1/1","2018/3/31")DATESMTD(<dates>)返回一個表,該表包含當(dāng)前上下文中本月截止到現(xiàn)在的日期列。例如:=DATESMTD('銷售數(shù)據(jù)'[日期])。DATESQTD(<dates>)返回一個表,該表包含當(dāng)前上下文中本季度截止到現(xiàn)在的日期列。例如:=DATESQTD('銷售數(shù)據(jù)'[日期])DATESYTD(<dates>)返回一個表,該表包含當(dāng)前上下文中本年截止到現(xiàn)在的日期列。例如:=DATESYTD('銷售數(shù)據(jù)'[日期])ENDOFMONTH(<dates>)從當(dāng)前上下文中日期列dates中返回相應(yīng)月份的最后一個日期。例如:=ENDOFMONTH('銷售數(shù)據(jù)'[日期])ENDOFQUARTER(<dates>)從當(dāng)前上下文中日期列dates中返回相應(yīng)季度最后一個日期。例如:=ENDOFMONTH('銷售數(shù)據(jù)'[日期])ENDOFYEAR(<dates>)從當(dāng)前上下文中日期列dates中返回相應(yīng)年度最后一個日期。例如:=ENDOFYEAR('銷售數(shù)據(jù)'[日期])對應(yīng)的STARTOFMONTH()、STARTOFQUARTER()和STARTOFYEAR()函數(shù)分別返回相應(yīng)每月、季度和年都中的第1個日期。FIRSTDATE(<dates>)從指定日期列dates中返回第一個日期。例如:=FIRSTDATE('銷售數(shù)據(jù)'[日期])LASTDATE(<dates>)從指定日期列dates中返回最后一個日期。例如:=LASTDATE('銷售數(shù)據(jù)'[日期])NEXTDAY(<dates>)返回一個表,包含從當(dāng)前上下文中dates列中第一個日期的下一天的日期。例如:=CALCULATE(SUMX('銷售數(shù)據(jù)','銷售數(shù)據(jù)'[銷量]),NEXTDAY('銷售數(shù)據(jù)'[日期]))NEXTDAY()返回的只是下一天的日期,所以SUMX()獲得的就是下一天的“銷量”。類似的PREVIOUSDAY(<dates>)返回上下文中dates列中第一個日期的前一天的日期。NEXTMONTH(<dates>)返回一個表,包含從當(dāng)前上下文中dates列中第一個日期的下一個月包含的所有日期。例如:=CALCULATE(SUMX('銷售數(shù)據(jù)','銷售數(shù)據(jù)'[銷量]),NEXTMONTH('銷售數(shù)據(jù)'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 夸克對稱性破缺機(jī)制-洞察與解讀
- 人工智能法律倫理框架-洞察與解讀
- 數(shù)字孿生技術(shù)博物館應(yīng)用-洞察與解讀
- 實(shí)時(shí)調(diào)整機(jī)制-洞察與解讀
- 珠寶公司銷售合同作廢制度
- 政策補(bǔ)貼對選址影響-洞察與解讀
- 智能園藝機(jī)器人的深度學(xué)習(xí)與視覺識別-洞察與解讀
- DevOps測試協(xié)同機(jī)制-洞察與解讀
- 碳纖維粘貼加固施工方案
- 光伏建筑一體化施工方案
- 2025年廣東省中考物理試題卷(含答案)
- 金華東陽市國有企業(yè)招聘A類工作人員筆試真題2024
- 2025年6月29日貴州省政府辦公廳遴選筆試真題及答案解析
- 2025年湖南省中考數(shù)學(xué)真題試卷及答案解析
- DB32/T 3518-2019西蘭花速凍技術(shù)規(guī)程
- 急救中心工作匯報(bào)
- 裝修敲打搬運(yùn)合同協(xié)議書
- 2025年公共管理改革的熱點(diǎn)問題試題及答案
- 《世界經(jīng)濟(jì)史學(xué)》課件
- 四川省綿陽市2024屆中考數(shù)學(xué)試卷(含答案)
- 2025年官方標(biāo)準(zhǔn)工程款房屋抵償協(xié)議范本
評論
0/150
提交評論