完整外部聯結
Power Query 中 [合併 ] 對話框中可用的其中一種 聯結類型是完整的外部聯結,其會帶入左右數據表中的所有數據列。 詳細資訊: 合併作業概觀
顯示具有 Date、CountryID 和 Units 數據行之左數據表的螢幕快照。 強調的 CountryID 資料行包含數據列 1 和 2、第 3 列 3 中的值,以及第 4 列中的 2。 右數據表包含標識碼和國家/地區數據行。 強調的標識符數據行包含數據列 1 中 1 的值(表示美國)、第 2 列 2 中的值(表示加拿大)、第 3 列 3 中的 3 個值(表示巴拿馬),第 4 列為 4(表示西班牙)。 前兩個數據表下方的表格包含 Date、CountryID、Units 和 Country 數據行。 所有數據列都會根據 CountryID 值,以數值順序重新排列。 與 CountryID 號碼相關聯的國家/地區會顯示在 Country 數據行中。 由於西班牙的國家/地區標識碼未包含在左數據表中,因此會加入新的數據列,並將此數據列的日期、國家/地區標識符和單位值設定為 null。
本文使用範例數據來示範如何使用完整外部聯結來執行合併作業。 此範例的範例源資料表包括:
銷售:此數據表包含 [日期]、[國家/地區標識符] 和 [單位] 字段。 CountryID 是代表 Country 數據表中唯一標識碼的整數值。
國家/地區:此數據表是具有字段 標識符 和國家 /地區的參考數據表。 [標識符] 欄位代表每個記錄的唯一識別碼。
在此範例中,您會合併這兩個數據表,並將 Sales 數據表合併為左數據表,並將 Countries 數據表合併為右數據表。 下列數據行之間會建立聯結。
Sales 數據表中的欄位 | [國家/地區] 數據表中的欄位 |
---|---|
CountryID | 識別碼 |
目標是建立如下的數據表,其中國家/地區名稱會顯示為 Sales 數據表中的新國家/地區數據行。 由於完整外部聯結的運作方式,無論它們是否只出現在其中一個數據表中,左右數據表中的所有數據列都會傳入。
最終完整外部聯接數據表的螢幕快照,其中 Date、CountryID 和 Units 衍生自 Sales 數據表,以及衍生自 Country 數據表的 Country 數據行。 已新增第五個數據列來包含來自西班牙的數據,但該數據列在 Date、CountryID 和 Units 數據行中含有 null,因為這些值不存在於 Sales 數據表中。
若要執行完整的外部聯結:
- 選取 [ 銷售 ] 查詢,然後選取 [ 合併查詢]。
- 在 [合併] 對話框的 [右數據表] 底下,選取 [國家/地區]。
- 在 Sales 數據表中,選取 CountryID 數據行。
- 在 [ 國家/地區] 數據表中,選取 [ 標識符 ] 數據行。
- 在 [ 聯結種類 ] 區段中,選取 [完整外部]。
- 選取確定
注意
您可以選取並按住 Ctrl,然後選取數據行,以合併多個數據行。
提示
請仔細查看對話框底部的訊息,其中顯示「選取範圍符合這兩個數據表中 5 個數據列的 4 個」。此訊息對於瞭解您從這項作業取得的結果至關重要。
在 [國家/地區] 數據表中,您有標識符為 4 的國家/地區西班牙,但在 Sales 數據表中沒有 CountryID 4 的記錄。 因此,右數據表中只有四個數據列中的三個找到相符專案。 右數據表中沒有相符數據列的所有數據列都會分組,並顯示在輸出數據表的新數據列中,且左數據表中欄位沒有值。
從合併作業之後新建立 的 [國家/地區 ] 數據行,展開 [ 國家/地區] 字段。 請勿選取 [ 使用原始數據行名稱作為前置 詞] 複選框。
執行此作業之後,您將建立看起來像下圖的數據表。
包含 Date、CountryID 和 Units 衍生自 Sales 數據表之完整外部聯結最終數據表的螢幕快照,以及衍生自 Country 數據表的國家/地區數據行。 已新增第五個數據列來包含來自西班牙的數據,但該數據列在 Date、CountryID 和 Units 數據行中含有 null,因為這些值不存在於 Sales 數據表中。