【Power BI】實作系列文3_資料模型


powerbi

其他系列文

1. Power BI介紹+安裝註冊

2. 匯入資料與資料轉型

3. 資料模型介紹

4. 坐標軸+視覺化

5. 地圖+卡片+多列卡片

6. KPI +交叉分析篩選器

 

前言 :

在先前第一篇《 PowerBI 匯入資料與資料轉型》文章中,相信大家都對 Query Editor  部份有一定的了解。這一次我們會談到有關Modelling,即是在 Visualisation 前我們要先把資料做好關連,計算量等等。

讀完此篇文章後,您將學會:
.設定關聯
.Create Calculated Columns
.Create Calculated Measures
.Create Calculated Tables

Power BI 主要在處理資料時會使用到 DAX 以及 Power Query 語法。有關詳細的 Library 查詢可以在這個網站找到:

https://msdn.microsoft.com/en-us/library/mt244090.aspx

資料模型:


 

設定關連

在這一部份我們還沒有談到視覺化,但我們先拉出兩張有關連的圖來做示範。

拉出一個 由 SalesFact table 中的  CountryNEW ProductID 組成的 Clustered column chart ,而 Axis 為 CountryNEW , Value 則為 ProductID ,並且把 Value 中的 ProductID 設定為 Count

如下圖:

powerbi_31

接著,再拉出一個 由 Product table 中的 Manufacturer ProductID 組成的 Donut chart,而 Legend 為 Manufacturer Value 則為 ProductID,並且把 Value 中的 ProductID 設定為 Count

如下圖:

powerbi_32

這時候我們應該可以看到我們的 Dashboard 長這樣:

powerbi_33

這時候嘗試點一下左邊棒形圖的不同棒,看看右邊的 Donut chart 有沒有根據我們點不同國家而有不同的圖像顯示。

例如我點棒形圖的 Germany 的棒,整體圖像顯示會變成:

powerbi_34

例如我點棒形圖的 USA 的棒,整體圖像顯示會變成:

powerbi_35

這樣我們便可以得知每個生產商對於某一個地區的產量貢獻。

這一次我們點右邊 Donut chart 來看看。

例如我點 Donut chart Natura 的部分,整體圖像顯示會變成:

powerbi_36

例如我點 Donut chart Abbas 的部分,整體圖像顯示會變成:

powerbi_37

這樣我們便可以得知某一個生產商對於每個地區的產量貢獻。

假如你的圖沒能像教學一樣會隨著點數據而其他圖也相應產生變化

那麼可能只是關連沒有自動設定到而已。

讓我們去設定看看。

先到 Power BI Desktop 介面左邊。點 Relationships

powerbi_38

之後大家會看到這樣的畫面:

powerbi_39

如果剛剛大家沒有成功圖跟圖之間的關連的話

剛剛我們的圖是從 SalesFact Product 所製作出來的,

而重疊部份就是 ProductID

所以我們只要把 Product 中的 ProductID  拉過去 SalesFact  中的 ProductID  就可以了。

powerbi_310

接下來放他就會連起來了

powerbi_311

這樣圖跟圖之間就會有隨著你選擇哪一部份需作出顯示上的變化了。

 

Create Calculated Columns :

這一次我們嘗試先拉 Geography 中的 District 出來,接著拉 SalesFact 中的 Revenue 到剛剛拉出來的 District 上面,會出現:

powerbi_312

原因是因為兩者資料沒有關連,所以無法放在一起。

但我們又不可能直接在 Relationships 中把他們的 Zip 拉在一起

因為 Zip 有可能在不同的地方會有一樣的情況

所以我們要創造一個新的 column 且他們的每一個資料都是獨立沒有重複的。

假如我們創造出新的一 column 資料且該行是把 CountryNEW 與 Zip 結合的,那麼每一筆資料必定是獨立的。

那我們要怎樣做呢 ?

 

我們到 Data 去。

powerbi_313

我們點選 Geography 的 table 後然後按上方 Modelling 及 New Column

powerbi_314

按了之後會出現這樣新的 Column

powerbi_315

接著我們用 DAX 語法寫上去,再按 Enter 便會得出新的一個 Column

powerbi_316

現在我們去到 SalesFact 那邊做與剛才同樣的操作

得到這樣的一行。

powerbi_317

現在 Geography SalesFact 都有相同的一個 Column 可以作出關連。

因此我們只要回到 Relationships 那邊

把 Geography CountryZip 拉丁 SalesFact CountryZip

powerbi_318

便可以即時作出關連。

 

如果無法做出與下圖相同結果,請注意圖中紅色圈起的地方有沒有 Sigma 標誌,有才代表該 Column 是可以用作運算。

假如沒有請像上一個部落格文所教的改變 Data type 操作一樣,把 Revenue 改成 Decimal data type

powerbi_319


 

Create Calculated Measures:

有時候我們可能只需要一個單一數值做計算

那麼我們可以使用 calculated measures

假設我現在想要把 SalesFact Revenue 數值大過 5000 的都加起來再除 12 好了。

先在 SalesFact 那邊右鍵選擇 New measure

powerbi_320

然後會跳出來像這樣多了一個 measure

powerbi_321

接下來在上面的填寫公式部份

powerbi_322

寫成

 

寫完之後 Enter

在剛剛 Field 那邊就會出現剛寫好的 measure

powerbi_324

然後我們把他拉出來

就會顯示出剛剛公式所計算出來的結果了

powerbi_325

有關於更多的 DAX 語法可以自行到 Microsoft Doc 那邊找到。

 

Create Calculated Tables :

有時候我們為了有效計算而不是動到原本的 Query ,我們可以導出資料表進行運算。

我們先到 Data 那一頁面

powerbi_326

然後到 Modelling 的 Tab 並且選擇 New Table

powerbi_327

按了之後會顯示出這樣的畫面﹏

powerbi_328

在公式那邊輸入如下圖:

powerbi_329

後按Enter

就會出現

powerbi_330

因此我們可以使用他來作單獨的運算。

有關更多後續的 Power BI 的操作包括 Data Visualisation 請大家在後續的 Power BI 的系列部落格文章查看。

 

 

|撰寫者:第十一屆 MSP 技術組 梁皓鈞
daniel-h-leung

Comments (0)

Skip to main content