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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論