Thep Excel

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

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

fx
=NATURALINNERJOIN(<LeftTable>, <RightTable>)

ความนิยม4/10
ความยาก5/10
ประโยชน์4/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
LeftTable table ตารางฝั่งซ้าย
RightTable table ตารางฝั่งขวา

Additional Notes

NATURALINNERJOIN รวมสองตารางเข้าด้วยกันแบบ Inner Join โดยอาศัยคอลัมน์ที่มีชื่อเหมือนกัน (และชนิดข้อมูลเข้ากันได้) เป็นคีย์การจับคู่ ผลลัพธ์จะมีเฉพาะแถวที่ “จับคู่ได้ทั้งสองฝั่ง”

ถ้าชื่อคอลัมน์คีย์ของสองตารางไม่ตรงกัน ให้ปรับชื่อคอลัมน์ให้เหมือนกันก่อน (เช่นด้วย SELECTCOLUMNS) แล้วค่อยทำ NATURALINNERJOIN

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: Inner join ด้วยคีย์ชื่อเดียวกันJoined = NATURALINNERJOIN( Sales, Product )

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

fx
Joined =
NATURALINNERJOIN(
Sales,
Product
)

ผลลัพธ์ได้ตารางที่มีเฉพาะแถวที่คีย์จับคู่กันได้ทั้ง Sales และ Product
ตัวอย่างที่ 2: ปรับชื่อคอลัมน์ให้ตรงกันก่อน join (แนวคิด)Joined (แนวคิด) = NATURALINNERJOIN( SELECTCOLUMNS(A, "Key", A[CustomerID], "ValueA", A[Value]), SELECTCOLUMNS(B, "Key", B[CustID], "ValueB", B[Value]) )

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

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

ผลลัพธ์ได้ผล join ด้วยคีย์ชื่อเดียวกัน (Key)
ตัวอย่างที่ 3: สรุปต่อหลัง join (แนวคิด)สรุป (แนวคิด) = SUMMARIZE( NATURALINNERJOIN(Sales, Product), Product[Category], "Sales", [Total Sales] )

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

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

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

FAQs

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

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

ต่างจาก NATURALLEFTOUTERJOIN อย่างไร?+

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ NATURALINNERJOIN จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้NATURALINNERJOINTable manipulation
Table manipulation (7)
ADDCOLUMNS

ADDCOLUMNS เป็นฟังก์ชัน table transformation ที่ใช้สำหรับเพิ่มคอลัมน์ใหม่ (Calculated Columns) เข้าไปในตารางที่มีอยู่เดิม โดยคำนวณค่าในแต่ละแถวผ่าน Row Context และส่งคืนตารางเดิมพร้อมคอลัมน์ใหม่ต่อท้าย

CROSSJOIN

CROSSJOIN สร้างตารางใหม่โดยการรวมแถวทั้งหมดจากตารางที่ระบุ โดยสร้างทุก Combination ที่เป็นไปได้ ผลลัพธ์คือตารางที่มีจำนวนแถวเท่ากับผลคูณของจำนวนแถวของแต่ละตาราง

NATURALJOINUSAGE

NATURALJOINUSAGE ทำให้ table expression ถูกเพิ่มเข้าไปในตัวกรอง (filter context) แบบ natural join โดยจับคู่ตามคอลัมน์ชื่อเดียวกัน เป็นฟังก์ชันที่ออกแบบสำหรับการใช้งานขั้นสูงในโมเดลแบบประกอบ (composite models) และ SUMMARIZECOLUMNS

NATURALLEFTOUTERJOIN

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

SELECTCOLUMNS

สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น

SUBSTITUTEWITHINDEX

คืนตารางที่เป็นผลแบบ semi-join ระหว่าง 2 ตาราง พร้อมแทนคอลัมน์ร่วมด้วยดัชนี 0-based ซึ่งคำนวณจากลำดับแถวของตารางอ้างอิงหลังจัดเรียง

SUMMARIZE

SUMMARIZE สร้างตารางสรุปโดยจัดกลุ่มข้อมูลตามคอลัมน์ที่กำหนด คล้าย GROUP BY ใน SQL หรือ Pivot Table ใน Excel คืนค่าตารางที่มีหนึ่งแถวต่อหนึ่ง unique combination ของคอลัมน์ที่เลือก สามารถอ้างถึงคอลัมน์จาก related table ได้โดยตรงโดยไม่ต้องใช้ RELATED มักใช้สร้าง virtual table ใน measure เพื่อทำ intermediate calculations ก่อนใช้ iterator functions อย่าง SUMX, AVERAGEX คำนวณต่อ ⚠️ Best Practice: ใช้ ADDCOLUMNS ครอบ SUMMARIZE แทนการใส่ extension columns ตรงๆ เพื่อ performance และ filter context control ที่ดีกว่า สำหรับ calculated table แนะนำใช้ SUMMARIZECOLUMNS แทนเนื่องจากมี performance ดีกว่าอย่างมาก

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่