---
title: NATURALLEFTOUTERJOIN – รวมตารางแบบ Left Outer Join ตามคอลัมน์ชื่อเดียวกัน
url: https://www.thepexcel.com/functions/dax/table-manipulation/naturalleftouterjoin-dax/
type: function-explainer
program: DAX
syntax: "NATURALLEFTOUTERJOIN(<LeftTable>, <RightTable>)"
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 4
  difficulty: 5
  usefulness: 4
---

# NATURALLEFTOUTERJOIN – รวมตารางแบบ Left Outer Join ตามคอลัมน์ชื่อเดียวกัน

> Left outer join สองตารางด้วยคีย์ชื่อเดียวกัน

## คำอธิบาย

NATURALLEFTOUTERJOIN ทำ left outer join ระหว่าง LeftTable และ RightTable โดยใช้คอลัมน์ชื่อเดียวกันเป็นคีย์ เก็บทุกแถวของตารางซ้ายไว้ทั้งหมด และเติมคอลัมน์จากตารางขวาเมื่อจับคู่ได้ (ไม่จับคู่จะเป็น BLANK)

## Syntax

```excel
NATURALLEFTOUTERJOIN(&lt;LeftTable&gt;, &lt;RightTable&gt;)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| LeftTable | Yes | table |  | ตารางฝั่งซ้าย (ทุกแถวฝั่งนี้จะถูกเก็บไว้) |
| RightTable | Yes | table |  | ตารางฝั่งขวา (คอลัมน์ฝั่งนี้จะถูกเติมเมื่อจับคู่ได้) |

## เคสการใช้งาน

### เติมข้อมูลอ้างอิงให้ตารางหลัก

เก็บแถวตารางหลักไว้ทั้งหมด แล้วเติมข้อมูลจากตารางอ้างอิงเมื่อจับคู่ได้

_เหมาะกับ:_ enrich-left-table

### ตรวจรายการที่ไม่มีการจับคู่

แถวที่คอลัมน์ฝั่งขวาเป็น BLANK คือแถวที่ไม่พบคู่

_เหมาะกับ:_ find-unmatched-rows

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: Left outer join เพื่อเติมข้อมูลสินค้า

```excel
Joined =
NATURALLEFTOUTERJOIN(
    Sales,
    Product
)
```

**ผลลัพธ์:** `ได้ตารางที่เก็บทุกแถวของ Sales และเติมคอลัมน์จาก Product เมื่อจับคู่ได้`

เหมาะเมื่อ Sales เป็นตารางหลักที่ต้องเก็บครบ แล้วเติมข้อมูลจาก Product

### 2. ตัวอย่างที่ 2: หารายการที่ไม่พบคู่ (แนวคิด)

```excel
ไม่พบคู่ (แนวคิด) =
FILTER(
    NATURALLEFTOUTERJOIN(Sales, Product),
    ISBLANK(Product[ProductName])
)
```

**ผลลัพธ์:** `ได้แถวที่ Sales ไม่พบสินค้าใน Product`

หลัง join แล้วสามารถตรวจคอลัมน์ฝั่งขวาที่เป็น BLANK เพื่อหาแถวที่ไม่จับคู่

### 3. ตัวอย่างที่ 3: ปรับชื่อคีย์ก่อน join (แนวคิด)

```excel
Joined (แนวคิด) =
NATURALLEFTOUTERJOIN(
    SELECTCOLUMNS(A, "Key", A[CustomerID], "ValueA", A[Value]),
    SELECTCOLUMNS(B, "Key", B[CustID], "ValueB", B[Value])
)
```

**ผลลัพธ์:** `ได้ผล join ด้วยคีย์ชื่อเดียวกัน (Key) โดยเก็บทุกแถวฝั่งซ้าย`

ถ้าคีย์ชื่อไม่ตรงกัน ให้สร้างคอลัมน์ชื่อเดียวกันก่อนด้วย SELECTCOLUMNS

## หมายเหตุเพิ่มเติม

ระวังผลลัพธ์ขยายจำนวนแถวถ้าคีย์ฝั่งขวาไม่เป็นเอกลักษณ์ (หนึ่งคีย์จับคู่ได้หลายแถว) ซึ่งจะทำให้จำนวนแถวเพิ่มขึ้นและอาจกระทบประสิทธิภาพ

## คำถามที่พบบ่อย

**Q: NATURALLEFTOUTERJOIN ใช้คอลัมน์ไหนเป็นคีย์?**

ใช้คอลัมน์ที่มีชื่อเหมือนกันในทั้งสองตารางเป็นคีย์การจับคู่

**Q: ถ้าจับคู่ไม่ได้จะเกิดอะไรขึ้น?**

แถวยังคงอยู่เพราะเป็น left join แต่คอลัมน์ที่มาจากตารางขวาจะเป็น BLANK

## ฟังก์ชันที่เกี่ยวข้อง

- naturalinnerjoin
- selectcolumns
- [FILTER – กรองตารางด้วยเงื่อนไขที่ซับซ้อน (Iterator Function)](https://www.thepexcel.com/functions/dax/filter/filter-dax/)
- isblank-dax
- lookupvalue
- crossjoin

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: NATURALLEFTOUTERJOIN](https://dax.guide/naturalleftouterjoin/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/table-manipulation/naturalleftouterjoin-dax/](https://www.thepexcel.com/functions/dax/table-manipulation/naturalleftouterjoin-dax/)_
