將多份資料表合併成單一資料表

已完成

合併查詢的功能很強大,因為這可供附加或合併不同的資料表或查詢。 下列情況可將多份資料表合併成單一資料表:

  • 存在太多數據表,因此難以巡覽過度複雜的語意模型。

  • 數份資料表具有類似的角色。

  • 資料表只有一或兩筆資料行可放入其他資料表。

  • 您想要在自訂資料行中使用來自不同資料表的數筆資料行。

您有兩種不同的方式可合併資料表:合併及附加。

假設您正在開發 Sales 和 HR 小組的 Power BI 報表。 其要求您建立一份連絡人資訊報表,包含所有員工、供應商和客戶的連絡資訊和位置。 此資料位於 HR.Employees、Production.Suppliers 和 Sales.Customers 資料表中,如下圖所示。

不過,因為此資料來自多份資料表,所以難題在於決定如何合併這些資料表中的資料,並建立單一事實來源資料表以建立報表。 Power BI 的固有功能可供將查詢組合及合併成單一資料表。

附加查詢

當您附加查詢時,您會將數據列新增至另一個數據表或查詢。 例如,您可以有兩個數據表,一個有 300 個數據列,另一個有 100 個數據列,而當您附加查詢時,最後會有 400 個數據列。 當您合併查詢時,您會將數據行從一個數據表 (或查詢) 新增到另一個數據表。  若要合併兩份資料表,則必須有一筆資料行作為兩份資料表之間的索引鍵。

針對先前提及的案例,您將附加 HR。具有 Production.Suppliers 和 Sales.Customers 數據表的員工數據表,以便您有一份聯繫人資訊的主要清單。 因為您想要建立一份包含員工、供應商和客戶的所有連絡資訊資料表,因此當合併查詢時,合併資料表中所需的相關資料行和原始資料表中資料行必須同名,才能看到一份彙總檢視。

開始合併查詢之前,您可從資料表中移除本工作不需要的多餘資料行。 若要完成這項工作,請將每份資料表格式化為只有四筆資料行的相關資訊,並予以重新命名,使其皆具有相同的資料行標頭: 下列圖片是重新格式化後的 Sales.Customers、Production.Suppliers 和 HR.Employees 資料表程式碼片段。

完成重新格式化之後,即可合併查詢。 在 Power Query 編輯器 功能區的 [首頁] 索引標籤上,選取 [附加查詢] 的下拉式清單。 您可以選取 [附加查詢] 作為 [新增],這表示附加的輸出將會產生新的查詢或數據表,或者您可以選取 [附加查詢],以將現有數據表中的數據列新增至另一個數據表。

下一個工作是建立新的主數據表,因此您必須選取 [附加查詢] 作為 [新增]。 此選取專案會帶您前往視窗,您可以在其中將您想要從 [可用的數據表 ] 附加的數據表新增 至 [附加數據表],如下圖所示。

新增要附加的資料表之後,請選取 [確定]。 系統會將您路由傳送至包含所有三個數據表所有數據列的新查詢,如下圖所示。

您現在已成功建立包含員工、供應商和客戶資訊的主資料表。 您可結束 Power Query 編輯器,並建置圍繞這個主資料表的任何報表項目。

不過,如果想要合併資料表,而不是將資料從某個資料表附加到另一個資料表,則此處理序會有所不同。

合併查詢

當您合併查詢時,您會根據資料表之間通用的數據行,將數據從多個資料表合併成一個數據表。  此處理序類似於 SQL 中的 JOIN 子句。 假設銷售小組現在希望將訂單及其對應的詳細資料 (目前在兩個資料表中) 合併成單一資料表。 您可合併這兩個資料表 (Orders 和 OrderDetails) 來完成這項工作,如下圖所示。 這兩個數據表之間共享的數據行是 OrderID

移至 Power Query 編輯器 功能區上的 [首頁],然後選取 [合併查詢] 下拉功能表,您可以在其中選取 [合併查詢] 作為 [新增]。 此選取項目會開啟新的視窗,您可以在其中從下拉式清單中選擇要合併的數據表,然後選取數據表之間的相符數據行,在此案例中為 orderid

您也可以選擇將兩個資料表聯結在一起的方式,也就是類似 SQL 中 JOIN 陳述式的處理。 這些聯結選項包括:

  • 左方外部 - 顯示第一個資料表的所有資料列,以及只顯示第二個資料表的相符資料列。

  • 完整外部 - 顯示兩個資料表的所有資料列。

  • 內部 - 顯示兩個資料表之間的相符資料列。

在此案例中,您將選擇使用 左外部 聯結。 請選取 [確定],這會將您路由傳送至新視窗,您可在該視窗中檢視合併的查詢。

現在,您可使用不同的方式來合併兩個查詢或資料表,以供能夠根據業務需求,以最適當的方式來檢視資料。

如需本主題的詳細資訊,請參閱 Power BI 中的圖形和合併數據 檔。