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

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

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

## คำอธิบาย

NATURALINNERJOIN ทำ inner join ระหว่าง LeftTable และ RightTable โดยใช้คอลัมน์ชื่อเดียวกันเป็นคีย์การจับคู่ คืนผลลัพธ์เฉพาะแถวที่จับคู่ได้ทั้งสองตาราง และมักใช้ร่วมกับ SELECTCOLUMNS เพื่อจัดชื่อคอลัมน์ให้ตรงกัน

## Syntax

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

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| LeftTable | Yes | table |  | ตารางฝั่งซ้าย |
| RightTable | Yes | table |  | ตารางฝั่งขวา |

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

### รวมตารางที่มีคีย์ชื่อเดียวกัน

เช่นตารางยอดขายและตารางสินค้า ที่มี ProductKey ชื่อเหมือนกัน

_เหมาะกับ:_ join-by-common-key

### เตรียมตารางสำหรับการสรุปต่อ

รวมข้อมูลสองชุดก่อนสรุปด้วย SUMMARIZE/ADDCOLUMNS

_เหมาะกับ:_ prepare-for-aggregation

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: Inner join ด้วยคีย์ชื่อเดียวกัน

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

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

NATURALINNERJOIN จะจับคู่ตามคอลัมน์ที่ชื่อเหมือนกัน (เช่น ProductKey) แล้วรวมคอลัมน์ของทั้งสองฝั่ง

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

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

**ผลลัพธ์:** `ได้ผล join ด้วยคีย์ชื่อเดียวกัน (Key)`

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

### 3. ตัวอย่างที่ 3: สรุปต่อหลัง join (แนวคิด)

```excel
สรุป (แนวคิด) =
SUMMARIZE(
    NATURALINNERJOIN(Sales, Product),
    Product[Category],
    "Sales", [Total Sales]
)
```

**ผลลัพธ์:** `ได้ตารางสรุปตาม Category หลังรวมข้อมูล`

หลัง join แล้วสามารถนำไปสรุปต่อได้ตามต้องการ

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

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

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

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

ใช้คอลัมน์ที่มีชื่อเหมือนกันในทั้งสองตาราง (และชนิดข้อมูลเข้ากันได้) เป็นคีย์การจับคู่

**Q: ต่างจาก NATURALLEFTOUTERJOIN อย่างไร?**

NATURALINNERJOIN คืนเฉพาะแถวที่จับคู่ได้ทั้งสองฝั่ง ส่วน NATURALLEFTOUTERJOIN จะเก็บแถวฝั่งซ้ายไว้ทั้งหมดแม้จับคู่ไม่พบฝั่งขวา

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

- naturalleftouterjoin
- crossjoin
- selectcolumns
- summarize
- addcolumns
- lookupvalue

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

- [DAX Guide: NATURALINNERJOIN](https://dax.guide/naturalinnerjoin/) _(documentation)_

---

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