右反聯結
Power Query 中 [
顯示左側包含 Date、CountryID 和 Units 列的數據表的圖表。 強調的 CountryID 資料行在第 1 和第 2 行的值為 1,第 3 行的值為 3,以及第 4 行的值為 2。 右側表格包含ID和國家欄。 強調的標識符數據行包含第 1 列 3 的值(表示巴拿馬),第 2 列則包含 4 個值(表示西班牙)。 前兩個數據表下方的表格包含欄位:Date、CountryID、Units 和 Country。 數據表有一個數據列,Date、CountryID 和 Units 設定為 null,而 Country 設定為西班牙。
本文使用範例數據來示範如何使用正確的反聯結來執行合併作業。 此範例的範例源資料表包括:
Sales:此數據表包含 Date、CountryID和 Units欄位。 CountryID 是整數值,代表來自 Country 數據表的唯一標識符。
國家/地區:此數據表是具有字段 標識符 和 Country的參考數據表。 識別碼 字段代表每個記錄的唯一標識碼。
在此範例中,您會將這兩個數據表合併,並將 sales 數據表合併為左數據表,並將 Countries 數據表合併為右數據表。 將在下列欄之間進行連結。
銷售數據表中的欄位 | [國家/地區] 數據表中的欄位 |
---|---|
CountryID | 識別碼 |
目標是建立以下表格,其中只保留來自右側表格的資料列,這些資料列與左側表格中的任何一列都不相符。 常見的使用案例是,您可以在右側數據表中找到所有可用的數據列,但在左側數據表中找不到。
右反聯結最終數據表,其中 Date、CountryID、Units 和 Country 為標頭行,僅有一個數據行,其中除了 Country 列外其他所有列都是 Null,而 Country 列包含「西班牙」。
若要執行正確的反聯結:
- 選取 Sales 查詢,然後選取 合併查詢。
- 在 [
合併 ] 對話框的 [合併右數據表]底下,選取 [ 國家/地區 ]。 - 在 [Sales] 數據表中,選取 [CountryID] 數據行。
- 在 [國家/地區] 表中,選取 [ID] 列。
- 在 [聯結種類] 區段中,選取 [右 反]。
- 選取 [確定]。
提示
請仔細查看對話框底部的訊息,該訊息顯示「選取範圍排除第二個數據表的 2 行中 1 行」。此訊息對於瞭解您從這項操作取得的結果至關重要。
在 國家/地區 表中,您有 國家/地區 西班牙,其 ID 為 4,但在 銷售 表中,国家ID 4 卻沒有記錄。 這就是為什麼只有來自右邊(第二個)數據表的兩個資料列中的一個找到匹配的原因。 由於右反聯結的運作原理,該操作的輸出中永遠不會出現來自左(第一個)資料表的任何資料列。
從新建立的 國家/地區 欄,展開 國家/地區 欄位。 請勿選取 [使用原始數據行名稱作為前置詞] 複選框。
執行此作業之後,您會建立看起來像下圖的數據表。 新展開的 Country 欄位沒有任何值。 這是因為右邊的反聯結不會從左數據表帶來任何值,它只會保留來自右數據表的數據列。
最終數據表的屏幕截圖,顯示了帶有 Date、CountryID、Units 和 Country 標題列的表格。該表格中有一行,所有標題列均為 null,唯獨 Country 列顯示西班牙。