Excel 中的自助式 Power BI 實作:Power Query 篇

Power BI for Office 365

上篇文章中我們介紹了 Power BI 的四大功能,分別是 Power Query、Power Pivot、Power View 和 Power Map,透過四大功能的完美結合運作,Excel 2013 中的自助式 BI 功能使得探索和視覺化呈現資料變得更為容易。

您可以使用 Power Query 在整個雲端搜尋資料 (包括公用和私人雲端)。 使用多個資料來源時,您可以運用 Power Query 篩選、重塑、合併以及附加資料等,不需要將資料納入 Excel 即可進行這些作業。您可以取得資料的檢視、依照想要的方式重塑,然後將其直接傳送到 Power Pivot 中的資料模型。 儘管如此,您也可以在 Power Pivot 中建立新的計算和欄位,取得確切所需的資料集。Power View 會使用資料模型讓資料生動活潑。 建立報表,然後讓他人與報表進行互動並深入探索,並能於選取報表元素時即時變更視覺效果。

而今天,我們要來細談的是 Power Query

Chapter 1:搜尋

首先,我們使用空白的 Excel 2013 活頁簿開始進行作業,前往 [Power Query] 索引標籤。Power Query 可讓使用者搜尋、合併、精簡、重塑及下載來自各種不同來源及類型的資料。我們可以在 [Power Query] 索引標籤上進行搜尋。

[線上搜尋] 窗格隨即出現。假設您覺得 S&P 500 指數這是極佳的股票市場橫斷面資訊,決定從搜尋 S&P 500 指數開始,相信如果可以找到清單,以及相關聯的資料,就可以建立有趣且具代表性的報表。

[線上搜尋] 窗格中將會顯示各種不同的結果。線上搜尋的第一個結果,是來自維基百科網頁的 S&P 500 成分股清單。

當游標停留在第一個搜尋結果上時,該資料來源的相關資訊隨即呈現。所輸入的搜尋字詞具有醒目提示。

Chapter 2:將資料載入 Excel

剛剛的搜尋功能看來相當有用,接著我們選取彈出資訊窗格底部的 [加入到工作表] ,如此可將資料下載到 Excel 中。

現在,我們需要資料對照 S&P 500 清單進行資料結合。假設我們找到了幾年前 (經濟衰退期間) 的每日股票資料,並想將資料載入到 Power Query 以進行重塑和檢視。

將查詢指向資料所在的資料夾。

注意: 您可以下載範例資料,並在閱讀本文時自行進行各個步驟 (NYSENASDAQ 資料)。請準備下載大量資料,本文中使用的兩個檔案大小都接近 45 MB。

Power Query 接著會開啟 [查詢編輯器] 視窗,顯示該資料夾中所有可用的資料來源。可以按一下 [內容] 資料行右邊的向下雙箭號圖示,載入該資料夾中的所有資料。目前,我們只需要一次取得一個 Excel 活頁簿。

查詢的預設名稱為 查詢 1,如右側的 [查詢設定] 窗格中所示,但我們可將其重新命名以配合資料內容:NYSE 2009 - 每日 。若您想要將查詢與其他資料來源配合使用,或是希望與他人共用查詢時,重新命名功能就十分便利。

資料集非常龐大 (總大小超過 80 MB),若暫時不希望將資料下載到活頁簿,只想查看資料行並決定要如何篩選與重塑資料,只需下載要使用的子集,清除 [載入設定] 下的 [載入至工作表][載入至資料模型] 核取方塊。

請注意,Power Query 會將資料來源 (在此案例中為 Excel 檔案) 敘述為 二進位 資料。若想要向下切入該資料的細節,需在 [二進位] 上按一下滑鼠右鍵並選取 [向下切入] (按一下或點選 [二進位] 文字也可以向下切入資料)。

Excel 會顯示 Excel 活頁簿的詳細資料。 在此案例中,它包含資料表。

我們再次向下切入資料,這次是使用按一下 (或點選) [資料表] 的方式。資料將會出現。不過,資料行標頭顯示在第一資料列的位置,並沒有顯示為欄位標頭。

這時僅需按一下功能區上的 [使用第一列做為標頭] ,接著,Power Query 會使用第一列做為標頭。

現在所有內容看起來都很正常,我們按一下功能區 [查詢] 區段中的 [套用並關閉]

在 Excel 中,查詢可以從 [活頁簿查詢] 窗格中使用。由於在建立查詢時清除了 [查詢編輯器] 視窗中 [載入設定] 區段中所有的核取方塊,因此我們的 [NYSE 2009 – 每日] 查詢會顯示在 [活頁簿查詢] 窗格中,且會停用載入。

Chapter 3:合併資料

現在,我們已經取得每日股票資料以及 S&P 500 資料,可以進行合併。透過合併資料,可以只取得需要的資料。在這個案例中,只需要屬於 S&P 500 之股票代號的每日股票行情指示器資料。

為達到這個目的,我們會使用 Power Query 合併資料。

Power Query 可讓您從活頁簿內可用的查詢中選擇主要資料表,以及哪些欄為相符的欄。 在這個案例中,相符的欄為行情指示器代號,因此我們會從 S&P 500 資料表中選取 [Ticker symbol] 欄,然後從 NYSE 資料表中選取 [stock_symbol]

當按下 [確定] 時,系統會提示指定每個資料集的資料隱私權設定。在選擇完畢後,按一下 [儲存]

將查詢從 [合併 1] 重新命名為 [SP500 – NYSE 合併] 。可以在 [查詢編輯器] 視窗中重塑資料,以符合本身需求。 例如,不需要描述 SEC 報表存檔的欄,因此將其移除。

與 S&P 500 資料合併的資料表會顯示為可展開的欄,顯示於可用欄的結尾。 當按下 [NewColumn] 標頭右側的雙箭頭圖示時,所有來自 [NYSE 2009 – 每日] 合併的欄都會出現,可供選擇加入。

現在,若想要取得 NASDAQ 活頁簿中的資料,會發現所有資料都在某個 Excel 活頁簿中,可以從檔案 (而非資料夾) 中取得資料。在 Excel 的 [Power Query] 功能區中,選取 [取得外部資料] > [從檔案] > [從 Excel] 。選取了 [NASDAQ_2009_每日] 活頁簿,然後按一下 [開啟] 。 Excel 中的 [導覽] 窗格隨即出現,且當游標停留在 [NASDAQ_2009] 工作表上時,可以看見其內容預覽。

選取工作表並從導覽窗格底部按一下 [編輯查詢][查詢編輯器] 視窗隨即出現。 我們再一次清除了 [載入設定] 區段的核取方塊,因為希望在將資料納入 Excel 前先加以重塑。

此時,結合 NASDAQ 資料所需的步驟和先前處理 NYSE 資料時的步驟很類似:選取 [使用第一列做為標頭] 、重新命名查詢,然後按一下 [套用並關閉]

現在,我們完成了一個合併 S&P 500 與 NYSE 資料的查詢,以及另一個合併 S&P 500 與 NASDAQ 資料的查詢。

Chapter 4:附加查詢

然而,若希望將這些查詢置於相同的資料集。希望附加這兩個查詢,僅需在 [資料表工具] 中的 [查詢] 工具列上,選擇了 [附加]

隨即出現視窗,讓我們選取主資料表以及要附加資料的資料表。幸好我們從開始作業起就已有規則地為查詢進行命名,因此可以很容易判斷出要附加的查詢。

[查詢編輯器] 視窗隨即出現,而我們也將這個查詢重新命名為 [NYSE – NASDAQ – SP500 附加] (當輸入新名稱,並按一下 [查詢設定] 中 [名稱] 方塊以外的位置後, [查詢編輯器] 視窗標頭會更新)。 [查詢編輯器] 是所有 Power Query 查詢 (包括查詢、合併和附加) 的一致介面。

這是我們所尋求的資料最終成果:一組 NYSE 與 NASDAQ 每日資料,已經過重塑除去不需要的資料行,並經過篩選,只包含 S&P 500 中股票代號的資料。現在已準備好要將資料載入工作表,因此選取了 [載入至工作表] 核取方塊。在將資料新增到資料模型前,還需要進行一些變更,因此仍未選取該核取方塊。

按下 [查詢編輯器] 功能區中的 [套用並關閉] ,資料會納入 Excel 中。在資料納入 Excel 中後,會檢查確認每個資料行的資料類型都正確。 例如,將 [日期] 資料行設為 [日期] 資料類型。也重新命名一些資料行,並從每個資料行移除 NewColumn. 字首,讓每個資料行更容易閱讀。

完成後,選取功能區上的 [Power Pivot] 索引標籤,然後選取 [資料表] > [新增至資料模型] ,經過重塑、篩選及合併的資料就會載入資料模型,也會帶領我們進入 Power BI 的下一個功能:Power Pivot。

Power Query 摘要

您可以使用 Power Query 跨組織與網際網路搜尋資料。 一旦找到所需的資料,您可以重塑、篩選、合併及附加各種來源的不同資料集,且這些作業都不需將資料納入 Excel 即可進行。 當您以想要的方式重塑及篩選查詢之後,可以將其下載到 Excel 中的工作表、下載到資料模型,或是下載到兩處。

您可以使用 Power Query 存取多種不同的資料來源,如下圖所示。 您可以從下列資料庫取得外部資料:

您可以從各種不同的檔案取得外部資料,例如 CSV 檔案或文字檔案。

您也可以從各種不同的其他資料來源取得外部資料。

當您取得了切合需要的資料集,並加以重塑、設定格式與適當合併之後,您可以儲存建立了前述完美資料集的查詢,並與其他人共用。

如需 Power Query 的詳細資訊,請參閱下列連結。

下一篇,我們將介紹 Power Povit,敬請期待,謝謝