Power BI DAX NATURALLEFTOUTERJOIN 函數:進行自然左外連接完整指南
Power BI DAX NATURALLEFTOUTERJOIN 函數:進行自然左外連接完整指南
📅 發布日期:2026-09-20
🏷️ 分類:資料表操作函數 DAX 函數
💡 函數速查卡
| 函數名稱 | NATURALLEFTOUTERJOIN |
|---|---|
| 所屬類別 | 資料表操作函數 (Table Manipulation Functions) |
| 傳回類型 | 資料表 (Table) |
| 常用頻率 | ★★★☆☆ |
在 Power BI / Analysis Services 的 DAX 數據建模中,NATURALLEFTOUTERJOIN 函數用於執行兩個資料表之間的**自然左外連接(Left Outer Join)**。它會保留左側資料表中的所有資料列,並根據同名的共用欄位比對右側資料表;若右表有對應資料則進行合併,若無對應資料則補上 BLANK()。
一、 基本語法與參數
NATURALLEFTOUTERJOIN 函數的標準 DAX 語法結構如下:
NATURALLEFTOUTERJOIN(<leftTable>, <rightTable>)
| 參數 | 說明 | 預設值 / 必填 |
|---|---|---|
leftTable |
作為主體的左側資料表運算式。其所有列都會保留在結果中。 | 必填 |
rightTable |
欲進行連接的右側資料表運算式。根據與左側相同的共用欄位值進行合併。 | 必填 |
二、 核心功能說明
NATURALLEFTOUTERJOIN 根據兩個資料表之間名稱相同的欄位進行自動比對(Natural Join),並執行左外連接。
在 Power BI 報表建模中,常見的實務應用包括:
- 合併主表與明細表,並保留主表中未有明細對應的完整紀錄。
- 在 DAX 記憶體中建立臨時虛擬資料表,進行多表關聯運算與聚合分析。
- 比對客戶資料或產品清單,找出缺乏補充屬性(如優惠券、擴充屬性)的項目。
三、 實用 DAX 範例
範例 1:基本左外連接範例(保留左表所有資料)
假設我們有客戶表與折扣資訊表,希望將兩者合併,並確保所有客戶資料均獲保留:
// 建立計算表:將 Customer 資料表與 Discount 資料表進行左外連接
CustomerDiscountTable =
NATURALLEFTOUTERJOIN(
'Customer',
'Discount'
)
範例 2:在 DAX 度量值中使用虛擬表進行動態統計
在度量值中搭配 SELECTCOLUMNS 與 SUMX,動態計算包含折扣後的總金額:
// 建立度量值:計算結合折扣資訊後的預估營收
TotalEstimatedRevenue =
VAR SalesTable = SELECTCOLUMNS('Sales', "ProductID", 'Sales'[ProductID], "Amount", 'Sales'[Amount])
VAR PromoTable = SELECTCOLUMNS('Promotion', "ProductID", 'Promotion'[ProductID], "DiscountRate", 'Promotion'[DiscountRate])
VAR JoinedTable = NATURALLEFTOUTERJOIN(SalesTable, PromoTable)
RETURN
SUMX(
JoinedTable,
[Amount] * (1 - COALESCE([DiscountRate], 0))
)
四、 常見陷阱與注意事項
⚠️ 注意事項 1:欄位名稱與資料型態必須精確匹配
自然連接依賴相同的欄位名稱進行關聯。兩個資料表中用於關聯的欄位,名稱與資料型態必須完全一致,否則無法正確比對或會拋出錯誤。
自然連接依賴相同的欄位名稱進行關聯。兩個資料表中用於關聯的欄位,名稱與資料型態必須完全一致,否則無法正確比對或會拋出錯誤。
⚠️ 注意事項 2:模型關聯性與數據衍生限制
若參與連接的是模型實體表,且兩表之間存在模型關聯,則連接欄位必須是關聯所使用的 key 欄位。若使用
若參與連接的是模型實體表,且兩表之間存在模型關聯,則連接欄位必須是關聯所使用的 key 欄位。若使用
SELECTCOLUMNS 或 ADDCOLUMNS 生成虛擬表,請注意欄位名稱不可產生無意間的衝突。
五、 相關函數推薦
NATURALINNERJOIN:執行自然內連接(Inner Join),僅保留兩表均匹配的資料。CROSSJOIN:回傳兩個資料表所有資料列的笛卡兒積(Cross Join)。UNION:將多個資料表垂直合併為一個資料表。SELECTCOLUMNS:從資料表中選取並重新命名欄位,常用於為 NATURALJOIN 準備輸入表。
六、 官方文件連結
想進一步瞭解微軟官方說明與 DAX 語法細節,可參考:
留言
張貼留言