POWERBI數據處理和分析-數據分析基礎_第1頁
POWERBI數據處理和分析-數據分析基礎_第2頁
POWERBI數據處理和分析-數據分析基礎_第3頁
POWERBI數據處理和分析-數據分析基礎_第4頁
POWERBI數據處理和分析-數據分析基礎_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數據分析基礎1章節(jié)內容8.1數據分析基本思想8.1.1PowerPivot中的數據表示模型——關系模型 8.1.2PowerPivot中數據分析建?;舅枷?.1.3數據分析核心概念1——數據篩選8.1.4數據分析核心概念2——數據計算8.2DAX語言基礎函數8.2.1控制流/邏輯函數8.2.2數據篩選基礎函數 8.2.3數據統(tǒng)計/計算函數8.3數據分析基礎案例28.1.1PowerPivot中的數據表示模型——關系模型數據的結構化是將數據整理成二維表形式,一個二維表中通常包含了若干行和若干列數據。每列數據具有相同的類型,表示對現實世界中某一類對象抽象后得到的一個屬性,而二維表所有列的列名和每列的數據類型構成了表的結構。二維表中的每一行數據表示現實世界中的一個對象,每個數據行中的每列字段值就是該行所表示的現實世界對象的一個屬性值。在關系數據庫中,根據對不同對象的抽象,將數據分成若干張獨立存儲,但又可以通過相同屬性列聯系起來的二維表。PowerBIDesktop也采用關系模型存儲數據。38.1.1PowerPivot中的數據表示模型——關系模型1. 關系的基本概念在PowerBIDesktop中,關系是指數據表之間的邏輯聯系,這些邏輯聯系抽象自數據表所代表的現實世界中的客觀對象。從形式上說,關系是通過兩個表中具有相同意義的列構建的,通常是分屬兩張表的兩個列具有相同的名字和數據類型。從作用上說,通過關系可以將兩張表中的數據行關聯起來,從而將分屬于兩張表中的數據行合并為包含兩個對象各自屬性的一個數據行。48.1.1PowerPivot中的數據表示模型——關系模型從設置的內容上說,關系包括“基數”和“篩選方向”?;鶖凳侵敢呀㈥P系的兩張表中每個數據行所代表的對象之間的對應數量關系。篩選方向表示在兩張表之間建立關系以后,以某張表為基礎對數據進行篩選時,對另一張表中數據的篩選效果。主要有以下兩種類型的篩選方向。58.1.1PowerPivot中的數據表示模型——關系模型基數類型(為表述方便,將兩張表分別稱為左表和右表以示區(qū)別)6關系的基數類型含義示例一對一(1:1)左表中的一個數據行,在右表中有唯一的一個數據行與之具有相同的關系列字段值,反之也是一樣。這表示兩張表中數據行所代表的對象有一一對應的關系?!胺课荨北砗汀半娏吭O備”表之間是一對一的關系。因為一套房屋里只有一個電量設備,而一個電量設備只能用于一套房屋。一對多(1:n)左表中的一個數據行,在右表中有多個數據行與之具有相同的關系列字段值,而右表中的一個數據行,在左表中只有唯一的一個數據行與之具有相同的關系列字段值?!岸址俊北砗汀靶^(qū)”表之間是一對多的關系。因為一套二手房只能屬于一個小區(qū),而一個小區(qū)可以包括多套二手房。多對多(n:m)左表中的一個數據行,在右表中有多個數據行與之具有相同的關系列字段值;而右表中的一個數據行,在左表中也有多個數據行與之具有相同的關系列字段值?!靶^(qū)”表和“地鐵站”表之間是多對多的關系。因為一個小區(qū)附近可以有多個地鐵站,而一個地鐵站附近也可以有多個小區(qū)。8.1.1PowerPivot中的數據表示模型——關系模型篩選方向類型7關系的篩選方向含義示例單向假設篩選方向是從左表到右表單向:在對左表的數據進行篩選時,會根據篩選留下的數據作為條件,依照關系,對右表的數據進行篩選;而反過來,當對右表的數據進行篩選時,不會根據篩選結果對左表的數據進行任何篩選。假設是從地鐵站表到二手房表的單向關系。則當對地鐵站表進行篩選時,會根據篩選得到的地鐵站信息,對二手房表進行篩選,則得到符合條件的地鐵站附近的二手房。反之,當對二手房表進行篩選,例如僅選擇一套二手房時,對地鐵站表仍然使用所有數據行,而不會僅留下該二手房附件的地鐵站。雙向無論對哪一張表的數據進行篩選時,會根據篩選留下的數據作為條件,依照關系,對另一張表的數據進行篩選。假設是從地鐵站表到二手房表的雙向關系。則對地鐵站表進行篩選時,也會根據關系對二手房表進行篩選,最后得到的是滿足條件的地鐵站及附近的二手房信息。而對二手房信息進行篩選時,也會根據關系對地鐵站表進行篩選,最后得到的是滿足條件的二手房及這些二手房附近的地鐵站信息。8.1.1PowerPivot中的數據表示模型——關系模型2. 自動生成關系單擊PowerBIDesktop數據視圖下“主頁”選項卡中“管理關系”按鈕,在彈出的“管理關系”對話框中單擊“自動檢測關系”按鈕PowerPivot則會根據四張數據表的列字段自動檢測并生成這些數據表之間的關系88.1.1PowerPivot中的數據表示模型——關系模型98.1.1PowerPivot中的數據表示模型——關系模型108.1.1PowerPivot中的數據表示模型——關系模型3. 手工管理關系如果PowerPivot自動檢測生成的數據表之間的關系不能滿足數據表之間的真正邏輯聯系,則可以通過手工的方式進一步對數據表之間的關系進行管理,包括關系的刪除、添加和編輯等。通過點擊“管理關系”對話框中相應按鈕實現,也可以直接對關系視圖中兩張數據表之間的關系連接線施加相應的操作。118.1.1PowerPivot中的數據表示模型——關系模型對關系的管理和編輯還可以通過單擊“管理關系”對話框中“編輯”按鈕,或在具體某個關系的右鍵菜單中選擇“屬性”菜單項調出“編輯關系”對話框實現。在“編輯關系”對話框中可以設置構建關系的數據表及其列字段、關系的基數類型以及關系的交叉篩選器方向,此外還可以設置此關系是否可用(不可用的關系無法關聯兩張數據表)。128.1.1PowerPivot中的數據表示模型——關系模型138.1.2PowerPivot中數據分析建?;舅枷胍砸粋€簡單的問題為切入點演示PowerPivot中數據分析的思路、過程和蘊含的基本思想。1. 問題假設想了解一下二手房房齡對房價的影響,主觀直覺上認為房齡越短的房子應該售價越高,那么數據分析的結果是否可以驗證我們的直覺是正確的?我們可以以某個年份(例如2010年)為分界線來區(qū)分房齡的新舊。然后分別計算二手房每平米均價、2010年及之后的每平米均價以及2010年之前的每平米均價并進行對比。二手房每平米均價度量值:每平米均價=AVERAGE(house[unit_price])148.1.2PowerPivot中數據分析建?;舅枷?. CALCULATE函數CALCULATE函數是在篩選器函數對數據做過篩選的基礎上,對數據進行指定的聚合計算。CALCULATE函數的原型是:CALCULATE(<expression>,<filter1>,<filter2>…)第一個參數<expression>是對數據進行的聚合計算表達式,不可省略。該DAX表達式中包含著所引用的表對象/列屬性,根據情況可以是隱式限定名或顯式限定名,當然這里的DAX表達式也可以是一個已經定義好的度量值。除了第一個參數外的其他參數是對計算所依賴的數據進行篩選的篩選器函數,根據需要篩選器函數可以沒有也可以有多個,每一個篩選器函數是在前面的篩選器函數對數據做過篩選以后的數據集上進一步進行篩選。158.1.2PowerPivot中數據分析建?;舅枷?. 具體實現(1)創(chuàng)建度量值首先可以使用CALCULATE函數建立兩個用于分析新舊二手房價格的度量值。房齡比較新的二手房的均價計算度量值如下定義:2010年及之后每平米均價=CALCULATE(AVERAGE(house[unit_price]),house[buildingyear]>=2010)162010年及之后每平米均價=CALCULATE([每平米均價],house[buildingyear]>=20108.1.2PowerPivot中數據分析建?;舅枷敕魁g比較舊的二手房的均價計算度量值可以如下定義:2010年之前每平米均價=CALCULATE(AVERAGE(house[unit_price]),house[buildingyear]<2010)或者2010年之前每平米均價=CALCULATE([每平米均價],house[buildingyear]<2010)178.1.2PowerPivot中數據分析建模基本思想使用已有的度量值來定義新的度量值是一種比較好的做法,原因在于:這樣使得DAX公式的可讀性更好,比較容易理解;如果有多處DAX公式引用同一個已經定義好的度量值,則之前度量值如果需要修改,只需要修改該度量值定義。如果不這樣做,則一旦該度量值對應的子公式需要修改,則在引用它的每一處地方都需要做到無遺漏的修改。188.1.2PowerPivot中數據分析建模基本思想(2)度量值結合可視化對象進行數據分析在報表中添加一個簇狀柱形圖,設置“每平米均價”、“2010年及之后每平米均價”、“2010年之前每平米均價”三個度量值為該簇狀柱形圖的“值”屬性。198.1.2PowerPivot中數據分析建模基本思想通過對不同裝修程度的二手房再分別對比新舊房齡二手房的價格影響,進一步探索分析。在報表中再添加一個簇狀柱形圖,除了仿照第一個簇狀柱形圖設置“值”屬性外,再將裝修程度設置到“軸”屬性上。208.1.2PowerPivot中數據分析建?;舅枷?. 數據建模數據分析的目的是為了理解數據中所蘊含的現實世界中各種事物之間的關系和規(guī)律,進而幫助或指導決策行為。數據建模就是要確定分析的目標量化指標,以及與目標量化指標相關的變量因素,通過構建目標量化指標和變量因素之間的數學關系模型研究變量因素如何影響目標指標。因此,數據建模的主要工作包括:確定目標量化指標;確定可能的變量因素;構建目標量化指標和變量因素之間的數學關系模型,從而可以量化變量因素和目標指標之間的關系;基于數據進行數學模型的計算,根據計算結果做出有意義的符合邏輯的結論。218.1.3數據分析核心概念1——數據篩選在數據分析中,所謂上下文環(huán)境是指可以量化的度量指標值的計算所基于的數據,這些數據通常并不是數據表中所有的數據,而是根據DAX計算公式中所引用的數據表和相關字段、所使用的篩選器函數以及可視化對象所設計的篩選器綜合篩選得到的。理解DAX計算的上下文概念(1)需要從數據建模分析的角度自上而下的掌握構建量化指標的方法,明確這些指標是為了什么分析目標而構建的,基于的數據是如何得到的;(2)理解如何在PowerPivot中分析量化指標,包括數據分析的篩選上下文如何構造,以及如何對基于篩選得到的數據進行計算。228.1.3數據分析核心概念1——數據篩選在PowerPivot中使用DAX公式進行數據分析時,量化指標總是基于數據表中的數據根據指定的計算方式計算得到,要么是引用數據表當前行的數據,要么是引用數據表的某些列進行聚合,而對所使用的那些數據行,還需要基于不同篩選器進行層層篩選。兩個基本概念:行上下文篩選器上下文。238.1.3數據分析核心概念1——數據篩選1. 行上下文當構造計算列時,這個計算列數據的產生是由數據表中的一行數據進行計算,得到計算列在當前行的一個結果值,進而由每一行新得到的計算結果數據,構成了計算列。在這個過程中,將每一行計算列屬性值的計算數據來源,也就是當前數據行,稱為行上下文。248.1.3數據分析核心概念1——數據篩選例:house表中所構建的計算列“房型”的DAX公式為:房型=house[rooms]&"房"&house[halls]&"廳"&house[toilets]&"衛(wèi)"258.1.3數據分析核心概念1——數據篩選例.可以用house表每一行數據中的“每平米單價”列和“房屋面積”列相乘,為house表構建“總房價”計算列用于后續(xù)的分析,其DAX公式如下所示:總房價=house[unit_price]*house[area]268.1.3數據分析核心概念1——數據篩選2. 篩選器上下文行上下文主要解決數據表中每一行上新增數據的計算來源問題,但不論是原始的數據列還是新增的計算列,都是作為最終數據分析的基礎存在的。當根據設置好的目標進行數據分析時,通常會依據不同的維度對數據進行橫向(數據行)和縱向(數據列屬性)的篩選,再對篩選之后的數據進行聚合計算,得到分析指標值。我們將施加在參與分析的數據上的完整的篩選條件稱為篩選器上下文。在PowerPivot中,篩選器上下文可以由DAX公式中的一個或多個篩選器函數、可視化對象中篩選器以及可視化對象自身的屬性值通過依次實施的多層篩選實現278.1.3數據分析核心概念1——數據篩選288.1.3數據分析核心概念1——數據篩選以度量值“2010年及之后每平米均價”在簇狀柱形圖中的應用為例介紹計算所依據的篩選器上下文。House[2010年及之后每平米均價]=CALCULATE(AVERAGE(house[unit_price]),house[buildingyear]>=2010)

首先,該度量值的DAX公式定義給出了所使用的數據表及其字段,即“house”表中[unit_price]字段,而篩選器函數“house[buildingyear]>=2010”給出了原始數據的第一次篩選。298.1.3數據分析核心概念1——數據篩選首先將該度量值應用到卡片圖在默認情況下,卡片圖只需要設置“值”字段屬性,在沒有其他篩選器的作用下,該度量值與卡片圖結合給出了數據表中所有2010年及之后建造的二手房的每平米均價數據,這里平均值計算函數AVERAGE()所基于的篩選器上下文就是由度量值自身DAX公式定義中的篩選器函數決定的。308.1.3數據分析核心概念1——數據篩選若在篩選器窗格中為這個卡片圖視覺對象增加一個篩選器,例如將衛(wèi)生間數量設置為篩選字段,則house表的[toilets]字段的不同取值將在篩選器設置區(qū)域被列出作為第一層篩選器來對數據進行選擇,然后再基于DAX公式自帶的篩選器函數再次對數據進行篩選,得到最終顯示在卡片圖中的度量值計算所依據的篩選器上下文。318.1.3數據分析核心概念1——數據篩選將該度量值應用到柱形圖視覺對象。將裝修程度設置為柱形圖的橫軸字段后在柱形圖上便顯示出2010年及之后建造的二手房根據不同裝修程度分類的房屋每平米均價數據,依橫軸展開的每個柱形所代表的數值實際上都是根據分類軸字段[equipment]的值又對數據行進行了一次篩選。例如“豪裝”所對應的柱形數值41千是將滿足篩選條件[equipment]=“豪裝”的數據行留下,再根據DAX公式定義中的篩選條件house[buildingyear]>=2010對數據做進一步篩選,最后對這些篩選得到的數據行中的[unit_price]字段求平均值得到的。在本次應用中,除了DAX公式外,還依據橫軸字段對數據進行了篩選。328.1.3數據分析核心概念1——數據篩選將該度量值應用到矩陣對象。將該度量值設置為矩陣的“值”字段,將“裝修程度”字段設置為矩陣的列字段,將計算列“房型”字段設置為矩陣的行字段后,可以得到對于每種房型按照不同裝修程度的每平米均價數據,并且在行和列方向上還有匯總計算結果。該矩陣對象中的每個數值都是由矩陣的行和列篩選器函數、DAX公式的篩選器函數共同構造的篩選器上下文對house數據表中的數據做過篩選后的數據計算得到的。338.1.4數據分析核心概念2——數據計算在數據篩選的基礎上對量化指標的DAX公式計算通常是按照先產生/提取每行指定的字段值,然后按照數據表遍歷每一數據行聚合計算所需要的指標值,對數據的計算隱含了對數據表的自動循環(huán)遍歷過程。數據建模分析的依據是事先根據分析目標和方法定義好的量化指標值,這些量化指標值通常是指度量值。度量值的計算依據可以基于原有列字段值、基于計算列和基于無名DAX表達式屬性值。348.1.4數據分析核心概念2——數據計算1. 基于數據表中原有列字段值的計算這種情況時度量值的計算是遍歷數據表中的每一個數據行,從中提取原有的列字段值完成聚合運算。典型的例子是

“每平米均價”度量值的計算。每平米均價=AVERAGE(house[unit_price])35聚合計算平均值8.1.4數據分析核心概念2——數據計算2. 基于計算列的計算度量值的計算是遍歷數據表中的每一個數據行,根據命名計算列的定義,從原有列字段值計算得到計算列字段的值,最終完成對所有數據行計算列字段值的聚合運算。例如,計算所有二手房中最高總房價的度量值定義如下最高總房價=MAX(house[總房價])368.1.4數據分析核心概念2——數據計算3. 基于無名DAX表達式屬性值的計算這種情況時度量值的計算是遍歷數據表中的每一個數據行,根據指定的DAX表達式計算每一行的一個沒有命名的屬性的值,然后完成對所有數據行中新計算得到的無名屬性值的聚合運算。例如,計算所有二手房中平均房齡的度量值定義如下。平均銷售房齡=AVERAGEX(HOUSE,YEAR(house[sale_date])-house[buildingyear])378.1.4數據分析核心概念2——數據計算AVERAGEX函數的原型是:AVERAGEX(<table>,<expression>)第一個參數<table>是求值所基于的數據表第二個參數<expression>是對于<table>表中的每一個數據行根據已有列屬性值計算得到一個新的無名屬性值的DAX表達式。函數功能是將<expression>應用到<table>的每一行數據計算得到新屬性值,然后對這個新屬性值的所有數據行計算算術平均值。388.1.3數據分析核心概念1——數據篩選基于無名DAX表達式屬性值的計算398.2.1控制流/邏輯函數在對數據的計算過程中,基本的執(zhí)行結構包括順序、分支和循環(huán)。循環(huán)計算結構在PowerBI中是通過計算函數對數據表的每一行迭代進行隱式的實現的。在PowerBI中,提供了邏輯函數NOT、AND和OR來實現邏輯非、邏輯與和邏輯或運算,可以用于邏輯條件的構造。同時提供了IF函數和SWITCH函數,可以實現分支控制結構。408.2.1控制流/邏輯函數1. IF函數IF函數根據一個邏輯條件進行分支計算,其函數原型是:IF(<logical_test>,<value_if_true>[,<value_if_false>])<logical_test>是一個邏輯表達式,通常構造是可以包含數據表中計算條件所對應的數據列。當<logical_test>為真時,IF函數返回<value_if_true>的值作為函數值;當<logical_test>為假時,如果提供了<value_if_false>,則IF函數返回<value_if_false>的值作為函數值,否則返回空白值。例如,根據房價數值給房價劃分一個級別,例如30000以上作為高價房,小于等于30000作為非高價房,則可以使用IF函數構造計算列如下:priceclass=if(house[unit_price]<=30000,"非高價房","高價房")418.2.1控制流/邏輯函數2. SWITCH函數SWITCH函數可以通過一個表達式與預設的多個常量值的匹配比較來實現多分支計算,其函數原型是:SWITCH(<expression>,<value1>,<result1>[,<value2>,<result2>]…[,<else>])第一個參數<expression>是標量表達式后面的<value>,<result>成對出現,并且至少出現一對,<value>可以是常量,也可以是一個標量表達式。SWITCH函數計算參數<expression>的值,并依次與每個<value>的值比較,當<expression>的值與某個<value>相等時,與<value>一對的<result>值將作為最終的函數值;如果<expression>與給出的每一個<value>都不匹配,則最后還可以提供一個可選的<else>表達式來作為最終的函數值,如果<expression>與給出的每一個<value>都不匹配又沒有提供<else>表達式,則最終的函數值為空白值。428.2.1控制流/邏輯函數在編寫SWITCH函數表達分支計算時,<expression>和<value>值可以有兩種構造方法。(1)<expression>根據數據表中數據行中的數據計算<expression>返回一個標量值,后續(xù)的每個<value>都是常量,表達了<expression>的可能取值情況,而<else>表達式對應的是除了給出的<value>值之外的取值可能。Areaclass1=switch(INT(house[area]/100),0,"面積小于100",1,"面積[100,200]",2,"面積[200,300]","面積大于300")438.2.1控制流/邏輯函數(2)<expression>設置為表達式“true()”,即始終返回TRUE,后續(xù)的每個<value>則可以構造為對數據表中數據行中數據判斷所屬范圍的邏輯表達式。這種構造的含義是看哪個<value>邏輯表達式所表達的邏輯條件為真,則函數值是與之配對的<result>表達式,而<else>表達式對應的是所有<value>都為假時的取值。Areaclass2=switch(true(), house[area]<100,"面積小于100", house[area]<200,"面積[100,200]", house[area]<300,"面積[200,300]", "面積大于300")448.2.2數據篩選基礎函數ALL函數ALL函數的功能是清除施加在作為參數的表或表的列上的所有篩選器函數,從而可以返回所有數據行所對應的數據,其原型是:ALL([<table>|<column>[,<column>[,<column>[,…]]]])第一個參數<table>是要去除篩選器的數據表,后續(xù)的<column>參數是可選的,表示是針對<table>表的哪些列去除篩選器,而未指定的列的篩選器函數仍然保留。ALL函數的作用是為度量值的計算提供去除篩選器干擾以后的全部數據行,因此通常不會單獨使用,而是作為度量值計算函數的數據源參數使用。458.2.2數據篩選基礎函數例。計算二手房單位均價的度量值:每平米均價=AVERAGE(house[unit_price])該度量值應用到可視化對象時,會受到各級篩選器函數作用的影響。再次構造計算二手房單位均價的度量值:每平米均價2=CALCULATE(AVERAGE(house[unit_price]),ALL(house))在這個度量值的計算中,ALL(house)參數的含義是刪除作用在house表上的所有篩選器函數,返回house表的所有數據行,作為AVERAGE(house[unit_price])計算的上下文數據。468.2.2數據篩選基礎函數不使用ALL函數和使用ALL函數進行度量值計算的區(qū)別478.2.2數據篩選基礎函數2. ALLEXCEPT函數ALLEXCEPT函數的作用是有選擇的清除施加在數據表上的篩選器函數,其原型是:ALLEXCEPT(<table>,<column>[,<column>[,…]])第一個參數<table>是要去除篩選器的數據表,后續(xù)的<column>參數表示仍然希望保留篩選器函數的那些列,也就是說如果有篩選器函數是依據這些列設置的,則不會被清除掉,而不在<column>參數指定的列上的篩選器函數將全部被清除掉。488.2.2數據篩選基礎函數定義第三個計算二手房每平米均價的度量值如下:每平米均價3=CALCULATE(AVERAGE(house[unit_price]),ALLEXCEPT(house,house[equipment]))這里ALLEXCEPT(house,house[equipment])的作用是:除了house表equipment列上施加的篩選器函數外,清除施加在houes表上的所有其他篩選器函數。在此基礎上得到的數據行作為AVERAGE(house[unit_price])計算的數據源。498.2.2數據篩選基礎函數上圖是基于“每平米均價”度量值構造的矩陣對象,左下圖是基于“每平米均價2”度量值構造的矩陣對象,右下圖是基于“每平米均價3”度量值構造的矩陣對象。508.2.2數據篩選基礎函數3. FILTER函數FILTER函數是按照給定的篩選條件對指定的數據表進行篩選,返回篩選之后的數據行,其原型是:FILTER(<table>,<filter>)第一個參數<table>是作為基礎的數據表;第二個參數<filter>是施加在<table>表上的篩選器函數。518.2.2數據篩選基礎函數在8.1.2節(jié)中創(chuàng)建了一個計算2010年及之后二手房單位均價的度量值,可以使用FILTER函數創(chuàng)建一個具有同樣功能的度量值:2010年及之后每平米均價2=CALCULATE(AVERAGE(house[unit_price]),FILTER(house,house[buildingyear]>=2010))將兩個度量值都設置為柱形圖視覺對象的“值”字段,以裝修程度為分類橫軸,可以看到這兩個度量值的計算結果完全一樣528.2.2數據篩選基礎函數538.2.2數據篩選基礎函數FILTER函數可以和ALL函數結合起來使用,從而保證忽略其他可能的篩選器函數,而對數據源表只應用FILTER函數指定的篩選條件。創(chuàng)建第三個計算2010年及之后二手房單位均價的度量值如下:2010年及之后每平米均價3=CALCULATE(AVERAGE(house[unit_price]),FILTER(all(house),house[buildingyear]>=2010))548.2.2數據篩選基礎函數ALL和FILTER函數的配合使用558.2.3數據統(tǒng)計/計算函數1. ~與~X系列統(tǒng)計/計算函數在DAX的統(tǒng)計/計算函數中,有一個非常重要的模式是從數據表的每一行提取所需要的數據,然后進行聚合計算。聚合計算的主要方法包括求和、求平均值、求最大值、求最小值等。提取數據時主要采取兩種方式:(1)直接提取原有的列字段值(2)根據每行數據的列字段值用定義好的表達式進行聚合計算,計算結果作為每行的一個無名列字段值。568.2.3數據統(tǒng)計/計算函數DAX庫函數中提供了邏輯上相關的若干組~/~X函數,其中的~表示聚合計算方法,而添加了X的系列函數則表示提供表達式計算無名列字段值作為聚合計算的基礎。這些函數包括SUM/SUMX、AVERAGE/AVERAGEX、COUNT/COUNTX、COUNTA/COUNTAX、PRODUCT/PRODUCTX等578.2.3數據統(tǒng)計/計算函數COUNT函數用于對指定數據源表的列值進行統(tǒng)計計數,得到非空的列屬性值的個數。其函數原型是:COUNT(<column>)其中參數<column>是作為計數依據的列字段,要求這個列的數據類型是數值類型、日期時間類型或者文本類型,而不能是邏輯類型。例如,基于house表構建統(tǒng)計成交的二手房數量的度量值如下:二手房數量=COUNT(house[no])588.2.3數據統(tǒng)計/計算函數COUNTX是對數據源表中的每一行數據根據指定的表達式計算出一個值并做統(tǒng)計計數,統(tǒng)計結果為表達式值非空的個數,這個表達式的計算結果類型也不能是邏輯類型。COUNTX的原型是:COUNTX(<table>,<expression>)第一個參數<table>是計數基于的數據源表,可以是數據基表,也可以是類似ALL或者FILTER這樣的函數返回的表;第二個參數<expression>是針對每一數據行進行計算的表達式,一般而言該表達式會用數據源表中其他的列字段作為計算的依據

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論