【Power BI】實作系列文2_匯入資料與資料轉型

powerbi

其他系列文

1. Power BI介紹+安裝註冊

2. 匯入資料與資料轉型

3. 資料模型介紹

4. 坐標軸+視覺化

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

6. KPI +交叉分析篩選器

 

前言:

在上一篇已經大概介紹了 Power BI 的介面以及流程,這一次我們開始要處理資料了。

在這一篇開始會使用到 Power Query 以及 DAX 語法。

讀完此篇文章後,您將學會:
.匯入資料
.資料轉型

有關詳細的 Library 查詢可以在這個網站找到:

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

匯入資料:

接下來開啟我們的 Power BI 並且點選Get Data 。
powerbi_21

接著彈出來的視窗我們可以看到,Power BI 支援很多種資料的格式,這一次我們使用 Access database 格式。

powerbi_22

並且我們選擇剛剛下載下來的 Lab 1 教材中的 PowerBI.accdb 。

powerbi_23

之後會跳出預覽以及讓我們勾選要匯入哪一些資料。請大家如同圖中選擇要匯入的資料,並且點選 Load ,耐心等候匯入過程。

powerbi_24

 

點選上層的 Edit Queries 進行對資料的轉型。

powerbi_25

我們會看到這樣的一個介面彈了出來。

powerbi_26

接下來就到我們在 Query 中到處探索,作資料轉型了。

 

資料轉型:

我們現在就到處探索一下吧。

首先我們來改一下不同 table 的名字吧。

我們在介面的最左邊點選想改名字的 table 。

powerbi_27

之後在介面最右邊的 Query Settings 改名字。

powerbi_28

讓我們先把 table 都改成如下圖 :

powerbi_29

在 Date 的table 中我們看到一行叫 Date 。

powerbi_210

接下來我們右鍵選擇  Duplicate powerbi_211

然後會發現整個 table 跑出多一個行出來了。這時我們可以嘗試對他作出改變。

powerbi_212

改變Data Type

點選了整個行後在上方選擇 Data Type 改成 Date。

powerbi_213

原先的資料就會變成 Date 的格式了。

powerbi_214

Power BI 中資料可以有 Decimal , Whole Number , Date 等等其他,大家可以自行去探索。

此時我們會發現到最右邊的 Query Settings 中的 Applied Steps 多了好幾個。

powerbi_215

剛剛我們做的動作全部都會在 Applied Steps 這邊紀錄著,同時這些名字也是當下現在 table 的狀態的名字,你可以作出更改,也可以取消剛剛作出的變動。之後在寫 Power Query 公式時要操作 table 的需要回顧到當下 table 的狀態名字。

 

增加Date 相關的Column

Power BI 同時也提供在時間上運算的方便。例如我想要找出整個日期是在當年的星期幾,是在當年的第幾個星期,也很方便就可以找出來。

我們選擇最上面的 Add Column tab powerbi_216

接下來點選剛剛整行改過 data type 的資料,然後在上面的 Date 那邊如下圖選擇。

powerbi_217

接下來再一次點選剛剛整行改過 data type 的資料,再上面 Date 如下圖選擇。

powerbi_218

就會發現 Power BI 已經幫你算好當年的當天,是星期幾,是第幾個星期了。

powerbi_219

 

Split Column

讓我們來到 Product 這個 table 中的 Product 那一行

我們可以看到 他是由兩部份組成前面是製造商 後面是編號

我們這一次要把他分割出來

powerbi_220

我們在 Product 那一行右鍵選 Split Column

By Delimiter 是指以某些字元去分割,下者則時以多少個字元

powerbi_221

那麼我們選擇 By Delimiter

然後再根據下圖的選項再點 OK

我們根據從左邊開始數的第一個空白去分割 powerbi_222

分割完成 ! powerbi_223

 

儲存更變

按介面左上角的 Close & Apply 就可以儲存更變後離開 Query Editor

 powerbi_224

Load Folder

Power BI 除了匯入資料之外,也可以整個資料夾匯入。

再一次 Get Data 並且選取 Folder 。

powerbi_225

點選 International 資料夾然後點 OK。

powerbi_226

之後我們這一次點 Edit powerbi_227

再一次進入 Query Editor 介面,這一次所顯示的是資料夾內檔案的資訊

點選 Content 旁邊的圖示就可以把所有資料拿出來了

powerbi_228

開啟後會如下圖

powerbi_229

 

Append Queries

接下來就到了把某幾個 table 結合在一起了。

我們先把剛剛那個 Table 的 Source.Name 整行刪除掉 因為那個只是參考回去而已。

變成以下這樣

powerbi_230

我們現在是要把 International 跟 salesFact 結合在一起

先到右上角的 Append Queries 按下

powerbi_231

接著再選取要 Append 的 salesFact 後按 OK powerbi_232

我們可以看到多出一個叫 Append1 的 table
這個就是結合了 International 跟 salesFact 的table

Power BI 會自動把 column 對好並且結合

但我們會看到這邊有一個問題就是在 Country 那邊會有 null powerbi_233

那是因為 salesFact 的資料中沒有 Country 這一行,這邊我們要手動加一下。

 

使用Power Query 語法Add Column

在左上角按Custom Column powerbi_234

之後會跳出這樣的視窗

powerbi_235

在這邊輸入按照下圖

使用了  Power Query 語法去寫,大家可以自己查找更多學習起來。

以下內容是如果 Country 內的內容是 null ,那麼就填  USA ,不然就填回自己。

powerbi_236

完成 ! powerbi_237

 

Irregular Data

Power BI 在資料的自動處理,匯入 Query 中十分聰明,總能幫我們自動排好資料,可是這是建基於資料對於自動分析是有邏輯合理的。當我們有些資料是不規則的,便需要人手處理。

我們開一個新的 Power BI 專案,匯入教材中的不規則資料。

powerbi_238

選取後,再點選 sheet 1 並且按下 Edit powerbi_239

之後我們會看到下圖的情況

powerbi_240

因為是不規則資料所以 Power BI 就直接把當一模一樣的樣子讀進來

我們希望把他變成變成最左邊的 column 是 City ,然後右邊是每一年的數據

那麼我們需要把他進行 Transform

我們到 Transform tab 那邊選擇  Transpose powerbi_241

Transpose 之後,資料會變成下圖。

powerbi_242

大家可以看到,每一個 column 的 header 都是 column 1 2 3 4 ….

實際上我們資料的第一列正正就是我們的 header

因此我們可以按 User First Row As Headers powerbi_243

後把 City 與 Category 加到相應的位置就完成像下圖

powerbi_244

可是我們會看到

下圖塗黃色的地方是顯示 null,那是因為我們本身資料就只有一個格是寫城市的名字

powerbi_245

我們先點 City 整行,然後按上面 Fill 中的 Down powerbi_246

就會像下圖這樣把資料都Fill 完了

powerbi_247

完成圖就像這樣

powerbi_248

但如果我們想要把他變成更加方便用圖表作出分析發表示,這樣的 Query 不太好用。

因為目前的 Query 是比較對於我們人去看比較好,電腦去看則應該每一個都單一資料。

我們希望把他變成

一行城市,一行項目,一行年份,一行數據

 

因此我們先選擇所有年份的行,再點選 Unpivot Columns powerbi_249

就會變成我們所需要的每一個都是單一資料

powerbi_250

接著把年份那一行的 header 改成 Year

然後把 City , Category , Year 的 data type 改成 Text

再把 Value 的 data type 改成 Whole number

完成圖就像這樣

powerbi_251

儲存後接下來,經過 Transform 及 unpivot column 處理的資料對於 Power BI 的建立圖表分析更加友善。

 

像下圖的圖表也比較簡單輕易做到了。

powerbi_252

有關更多後續的 Power BI 的操作包括 Modelling 以及 Power BI 精神所在的 Data Visualisation 請大家在進階的 Power BI 的部落格文章查看

 

 

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