左反聯結
Power Query 中 [合併 ] 對話框中可用的其中一種 聯結類型是左反聯結,它只會從左數據錶帶入沒有右數據表中任何相符數據列的數據列。 詳細資訊: 合併作業概觀
圖表顯示具有 Date、CountryID 和 Units 數據行的左數據表。 強調的 CountryID 資料行包含數據列 1 和 2、第 3 列 3 中的值,以及第 4 列中的 2。 右數據表包含標識碼和國家/地區數據行。 強調的標識符數據行包含第 1 列 3 的值(表示巴拿馬),第 2 列則包含 4 個值(表示西班牙)。 前兩個數據表下方的表格包含 Date、CountryID、Units 和 Country 數據行。 數據表有三個數據列,其中兩個數據列包含 CountryID 1 的數據,以及 CountryID 2 的數據列。 由於其餘的 CountryID 都不符合右數據表中的任何國家/地區,因此合併數據表中 Country 數據行中的數據列全都包含 null。
本文使用範例數據來示範如何使用左反聯結來執行合併作業。 此範例的範例源資料表包括:
銷售:此數據表包含 [日期]、[國家/地區標識符] 和 [單位] 字段。 CountryID 是代表 Country 數據表中唯一標識碼的整數值。
國家/地區:此數據表是字段標識符和 Country 的參考數據表。 標識符欄位代表每個記錄的唯一標識碼。
在此範例中,您會合併這兩個數據表,並將 Sales 數據表合併為左數據表,並將 Countries 數據表合併為右數據表。 下列數據行之間會建立聯結。
Sales 數據表中的欄位 | [國家/地區] 數據表中的欄位 |
---|---|
CountryID | 識別碼 |
目標是建立如下的數據表,其中只會保留與右數據表中任何不相符之左邊數據表的數據列。
左側反聯結最終數據表的螢幕快照,其中 Date、CountryID、Units 和 Country 數據行標頭,以及三個數據列,其中 Country 數據行的值全都是 Null。
若要執行左反聯結:
- 選取 [ 銷售 ] 查詢,然後選取 [ 合併查詢]。
- 在 [合併] 對話框的 [右數據表] 底下,選取 [國家/地區]。
- 在 Sales 數據表中,選取 CountryID 數據行。
- 在 [ 國家/地區] 數據表中,選取 [ 標識符 ] 數據行。
- 在 [ 聯結種類 ] 區段中,選取 [左反]。
- 選取 [確定]。
提示
請仔細查看對話框底部的訊息,其中顯示「選取範圍會從第一個數據表選取 4 個數據列的 3 個數據列」。此訊息對於瞭解您從這項作業取得的結果至關重要。
在 Sales 數據表中,您有兩個 CountryID 的實例為 1,而 CountryID 的一個實例為 2,但在 Country 數據表中找不到兩個實例。 因此,比對在左(第一個) 數據表中找到四個數據列中的三個。
在 [國家/地區] 數據表中,您有標識符為 3 的巴拿馬國家/地區,因此不會將記錄帶入 Sales 數據表中,因為數位相符。 此外,您有標識碼為 4 的國家/地區西班牙,但在 Sales 數據表中沒有 CountryID 4 的記錄。 因此,右(第二個) 數據表的兩個數據列都不會帶入 Sales 數據表。
從新建立的 [國家/地區] 數據行,展開 [國家/地區] 字段。 請勿選取 [ 使用原始數據行名稱作為前置 詞] 複選框。
執行這項作業之後,您建立了看起來像下圖的數據表。 新展開 的 Country 字段沒有任何值,因為左反聯結不會從右數據錶帶入任何值,它只會保留左數據表的數據列。
具有 Date、CountryID、Units 和 Country 數據行標頭,以及三個數據列之最終數據表的螢幕快照。 Country 數據行的值全都是 Null。